重複の可能性:
PHP によって既に送信されたヘッダー
単純なログイン ページを作成していますが、$_SESSION
変数がページ間で転送されません。session_start()
各ページの冒頭、フォルダー書き込み特権などに関する他の多くの投稿を読みましsession_write_close()
たが、どれも機能しませんでした。有無にかかわらず違いはないので、そのsession_write_close()
ままにしておきます。以下のコードはすべて、どこ$login_fail
から来たのかなど、上下のコードを省略しているため、正常に機能します。
現在、$_SESSION
以下のコードに示すように変数を設定しています。
if($login_fail == "")
{
$query = "SELECT first_name, last_name, email_address,password FROM user_info WHERE email_address = '$email_address' AND password = '$password'";
$result = mysql_query($query);
if(!$result) die ("Database access : " .mysql_error());
elseif (mysql_num_rows($result))
{
$row = mysql_fetch_row($result);
$token = "$email_address";
$token1 = "$password";
echo "token: $token, token1: $token1, row[1]: $row[1], row2: $row[2] </ br>";
if($token == $row[2] && $token1 == $row[3])
{
session_start();
$_SESSION['first_name'] = $row[0];
$_SESSION['last_name'] = $row[1];
$_SESSION['email_address'] = $row[2];
$_SESSION['password'] = $row[3];
$_SESSION['check'] = md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']);
//print_r($_SESSION);
session_write_close();
header("Location: http://127.0.0.1/websiteproject/test.php");
}
else die("Invalid username/password combination");
}
}
else
{
echo "Login failed. Please try again.";
}
私はやったprint_r($_SESSION)
し、それはすべての正しい情報を出力します。
セッション変数は、test.php で再度呼び出され、非常に単純なコードで何が起こるかを確認します。
session_start();
print_r($_SESSION);
結果は空の配列です。セッションが書き込まれている easyphp 一時ファイルに移動すると、常に 2 つのファイルが見つかります。元のファイルには正しい情報がすべて含まれており、新しいファイルには情報が含まれていません。2番目に呼び出すと、session_start()
文字通り新しいセッションが開始され、現在のセッションが呼び出されないように見えます。
私はできるだけ多くの情報を提供し、人々の時間を無駄にしないように調査を行うようにしています. どんなアイデアでも大歓迎です。奇妙なことに、これは数日前に機能していましたが、プログラムの奥深くでファイルに変更を加え始めたところ、これが発生しました。だから私test.php
は転送の問題についてもっと知るために作った.