このコードは有効ですか?
<a href="#" onclick="<?php session_destroy();?>">Logout</a>
このコードは有効ですか?
<a href="#" onclick="<?php session_destroy();?>">Logout</a>
いいえ、有効なコードではありません。PHPページのロード時にセッションが破棄されます。
クリック時にセッションを破棄するには、次のように書く必要があります
<a href="logout.php" >Logout</a>
logout.php で
session_destroy();
不正なコード。このコードを使用できます:
<?php if($_GET['logout']==1) session_destroy(); ?>
<a href="?logout=1">Logout</a>
そのコードは、リンクをクリックする前にセッションを破棄します。次のようにする必要があります。
HTML ページ:
<a href="sessiondestroy.php">Logout</a>
Sessiondestroy.php :
<?=session_start(); session_destroy(); ?>
それは可能です。onClick アクションの使用に集中している場合は、単純に AJAX を使用できます。まず、次のような ajax.php を作成する必要があります。
<?php
//AJAX dynamic callback
if(isset($_GET['action'])){
if($_GET['action'] == 'logout'){
//destroy the session
session_destroy();
echo 'Logout success!';
//redirect the user to a default web page using header
header("location:http://example.com/");
}
}
?>
次に、ログアウトすることを ajax.php に伝える JavaScript ファイルを作成します。
<script>
function logout()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("Logoutbutton").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax.php?action=logout",true);
xmlhttp.send();
}
</script>
とにかく、StackOverflox を使用していただきありがとうございます。それがどうなるか、または追加のヘルプが必要な場合は、ご報告ください :)
TP