1

多くのことの中で、サイトのユーザーにサインインする場所を提供するページ header.php があります。これは、設定、データベース機能、および CSS ファイルをロードします。設定ファイルで、グローバル変数 $username を宣言します。header.php には、次のコードがあります。

if(!isset($username)){
  echo'<div class = "loginSpace">';
  echo'
  <form action = "checkLogin.php" method = "post">
  Username: <input type = "text" name = "username" size = 14/>
  <br>Password: <input type = "password" name = "pass" size = 14 />
  <input type = "submit" value = "Sign In"/>
  </form>
  </div>';
}
else{
     $result = mysql_query("SELECT * FROM {$db_prefix}Users WHERE Username = '{$username}'");
     $userInfo = mysql_fetch_array($result);
     echo '<div class = "loginSpace">
     Welcome ' . $userInfo['FirstName'] .'
     <form action = "index.php" method = "post"> '; 
     $username = "";
     echo'<input type = "submit" value = "Log out"/>
     </form>
     </div>';
     }

チェックログインには、次のものがあります。

$username = $_POST['username'];
$password = $_POST['pass'];
require_once('Header.php');

ユーザー名は保持され、checkLogin.php にリダイレクトされると適切な「見出し」が表示されますが、リンクをクリックしてサイトの別のページに移動すると、ユーザー名は忘れられます。

私は何かを忘れていますか?ありがとう。

4

2 に答える 2

6

私はあなたの質問を明確に理解していませんが、header.php でユーザー名をグローバル変数として宣言しましたか?? その場合、すべてのページで、header.php をインクルードする場合、最初に次のように記述します。

global $header;

次に、変数 $header を使用します。

Web ページはステートレスであるため、状態を維持するには、Cookie またはセッションまたは隠しフィールドを使用できます。

于 2012-11-19T05:26:19.043 に答える
1

別のリンクでは、代わりにpostページ ユーザーのユーザー名にアクセスする場合に使用しているため、ユーザー名は忘れられます。SESSION

最初に確認する必要があります

if(isset($_POST['username']) && isset($_POST['pass']))  {
    $username = $_POST['username'];
   $password = $_POST['pass'];

}

$result = mysql_query("SELECT * FROM {$db_prefix}Users WHERE Username = '{$username}'");
                                                 ^---there should be space 
于 2012-11-19T04:48:24.253 に答える