0

ログインをチェックし、ログアウトボタンを含むメンバーページを作成しました - 以下のコードを参照してください。開発された関数「DBLoggedin()」のコードは、サイト「http://www.phpro.org/tutorials/Basic-Login-Authentication-with-PHP-and-MySQL.html - ログインのテスト」セクションからコピーされます。ユーザー」。

ログインしてから初めて、以下のコードを含むメンバーページをロードすると常に機能します。このページを更新すると、「このページにアクセスするにはログインする必要があります」と報告されるため、セッション ID 情報が失われたようです。ただし、以下のコードで session_destroy() を使用して「button onclick」行を削除すると、メンバーページは常に正常に動作します。

ページを更新してもセッション情報が破棄されないように、以下のコードにログアウト機能を実装するにはどうすればよいですか? または、更新時にセッション情報を破棄するコードに別の障害がありますか?

助けてください。前もって感謝します

メンバーページのコード:

<?php

/*** begin the session ***/
session_start();

//! include lib after session_start()
include 'test_ecis_lib_pdo.php';

/*** mysql hostname ***/
$mysql_hostname = 'localhost';

/*** mysql username ***/
$mysql_username = 'root';

/*** mysql password ***/
$mysql_password = 'xxxxx';

/*** database name ***/
$mysql_dbname = 'xxxx';

if(DBLoggedin($mysql_hostname, $mysql_username, $mysql_password,$mysql_dbname))
{
 echo "<br> still logged in";
}
else
{
 echo "<br> you are not authorised to access this page";
 echo "<br error: ".$message;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Members Only Page</title>


</head>

<body>

<h2><?php echo $message; ?></h2>

<button onclick="<?php Logout();?>"> Logout</button>

</body>
</html>
4

1 に答える 1

0

<?php Logout();?>session_destroy() を呼び出しているようです。あなたがすべきことは、 を呼び出すログアウトページにリンクすることLogout()です。HTML/JS は PHP 関数を呼び出すことができず、JS 関数を呼び出して URL をロードすることしかできません。

<button onclick="document.location='/logout.php';"> Logout</button>

logout.php:

<?php
function Logout() {
  session_destroy();
  echo "You have been logged out!";
}

Logout();
于 2013-06-21T20:35:21.480 に答える