0

私が必要なのはこれです

私のメニュー

私のphpコードは次のとおりです。

class logout{
    public function __construct(){
        session_unset();
        session_destroy();
        session_write_close();
        setcookie(session_name(),'',0,'/');
        session_regenerate_id(true);
    }


}
if(!empty($_POST['logout'])){
    $object=new logout();
}

このために、私はhtmlコードを使用しています:

<ul id="navlist">
      <li><a href="index.php">Home</a></li>
      <li><a href="dates.php">Dates</a></li>
      <li><a href="candidate.php">Candidates</a></li>
      <li><a href="database.php">Database</a></li>
      <li><a href="password.php">Change Password</a></li>
      <li><a href='logout.php'>Log Out</a></li>
</ul>

ログアウトするには、読んだアンカーから JavaScript フォーム送信を行う必要がありますが、これは安全ではありません。

私がこれを好きなら:

<li><a href=''><form method="post"><input type='submit' value='Log Out' name='logout' style="border:0px;" /></form></a></li>

私はこのようなものを得ています:

悪いメニュー

問題を解決する方法 (フォームを送信するために JavaScript を使用する必要がありますか?)

4

3 に答える 3

4

jQueryがロードされている場合は、ajaxを介して実行できます。これにより、ナビのスタイルも維持できます。

<li><a href="#" class="log-out">Log Out</a></li>

$('.log-out').click(function() {
   $.post('logout.php');
});

$.post()または$.ajax()の ajax 短縮形の詳細

于 2013-08-09T19:25:54.223 に答える
2

これを投稿する必要はないと思います。単純化してください...この行を使用するように変更してください$_GET

if(!empty($_GET['logout'])){
    $object=new logout();
}

そして使用する?logout=true

<ul id="navlist">
      <li><a href="index.php">Home</a></li>
      <li><a href="dates.php">Dates</a></li>
      <li><a href="candidate.php">Candidates</a></li>
      <li><a href="database.php">Database</a></li>
      <li><a href="password.php">Change Password</a></li>
      <li><a href='?logout=true'>Log Out</a></li>
</ul>

どのページにもログアウト コードを含めることができるようになりました。

于 2013-08-09T19:28:31.510 に答える