このコードは有効ですか?
<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