私はしばらくこれをいじっています、そして私はそれが何か単純なものであることを知っています。私は別のWebサイトで基本的に同じコードを使用しましたが、問題はないようで、同じサーバーで実行されているため、サーバー側の問題ではないと思います。これは非常に単純なログインスクリプトです。
function user_login($username, $password) {
$passcorrect = user_checkpass($username, $password);
if ($passcorrect == "1") {
$_SESSION['eocname'] = $username;
echo("SETTING SESSION: ".$_SESSION['eocname']."<br />");
$success = "1";
} else {
$success = "0";
}
return($success);
}
これはSESSION変数を設定しているように見え、functions.phpファイルにあります。
ただし、ページを更新すると、SESSIONが消えたように見えます。page.phpファイルのコードは次のとおりです。
<?php
if (!isset($_SESSION['eocname'])) {
if (!isset($_POST['username'])) {
echo("You must login to access this page!");
echo($_SESSION['username']);
} else {
$result = user_login($_POST['username'], $_POST['password']);
if ($result == "0") {
echo("Incorrect Username or Password.");
} else {
echo("Login Successful!");
}
}
} else {
echo('Welcome back, '.$_SESSION['username'].'!');
}
?>
そこには冗長なものがあるかもしれないことに気づきました。問題を特定するためにそれをいじっていますが、ページに一度$_SESSION['eocname']が設定されていないようです。更新されます。
session_start();を追加しました。それが機能することを確認するためにエラーなしで私のfunctions.phpファイルの先頭に移動しますが、それでも運がありません。