Tôi biết bài này là cũ nhưng tôi chỉ muốn thêm câu trả lời của tôi!
Bạn đã nói để đăng nhập người dùng ra ngoài KHÔNG chỉ đạo ... phương pháp này KHÔNG chuyển hướng nhưng nó trả về người dùng đến trang họ đang truy cập!đây là triển khai của tôi:
// every page with logout button
<?php
// get the full url of current page
$page = $_SERVER['PHP_SELF'];
// find position of the last '/'
$file_name_begin_pos = strripos($page, "/");
// get substring from position to end
$file_name = substr($page, ++$fileNamePos);
}
?>
// the logout link in your html
<a href="logout.php?redirect_to=<?=$file_name?>">Log Out</a>
// logout.php page
<?php
session_start();
$_SESSION = array();
session_destroy();
$page = "index.php";
if(isset($_GET["redirect_to"])){
$file = $_GET["redirect_to"];
if ($file == "user.php"){
// if redirect to is a restricted page, redirect to index
$file = "index.php";
}
}
header("Location: $file");
?>
và ở đó chúng tôi đi!
mã nhận tên tệp từ url đầy đủ không phải là bằng chứng lỗi. ví dụ, nếu các chuỗi truy vấn có liên quan với un-escaped '/' trong chúng, nó sẽ thất bại.
Tuy nhiên, có rất nhiều tập lệnh ở đó để lấy tên tệp từ url!
Mã hóa hạnh phúc!
Alex
Nguồn
2011-12-08 09:21:47
bạn nên thử cũng trả về false từ hàm, do đó HREF không được theo dõi. –
2 năm sau, bây giờ tôi nhận ra những gì làm cho một câu trả lời tốt như vậy! – chustar
@Parrots: nếu tôi muốn chuyển ID tới somepage.php, làm thế nào tôi có thể đạt được điều này? Giả sử tôi thay đổi liên kết "a" thành onclick = "doSomething ( Php echo $ id?>);" và làm thế nào tôi có thể chuyển nó vào trang php? Cảm ơn – nasty