PHPコードでセッションをそのように設定しました:$_SESSION['user_id'] = $login;
これは、サーバーにアップロードされ、さまざまなページに渡って実行されている間は正常に機能しているようですが、ローカルマシンでWebサイトをテストしているときに、スクリプトを終了した後、セッションがすぐに設定解除されるようです設定されている場所。
XAMPP とまったく同じコードを使用して、ローカル マシンでテストしています。
この問題が発生している理由がわかりません。役立つ回答をいただければ幸いです。
動作しない例:
$_SESSION['user_id'] = $login;
echo '<META HTTP-EQUIV="refresh" content="0;URL=../home.php">';
編集1:
ログインする関数全体を次に示します(クラスの一部です)。
public function loggingIn(){
session_start();
$db = new Database('localhost','root','','userdata');
$userFunctions = new Users($db);
$username = $_POST['usernameInput'];
$password = $_POST['passwordInput'];
if(empty($username) || empty($password)){
$this->errors['u&p'] = 'Please Enter Your Username AND Password';
$this->printE();
} elseif($userFunctions->user_exists($username)===false){
$this->errors['nm'] = 'That Username/Password Combination Is Not Valid';
$this->printE();
} else {
$login = $userFunctions->login($username, $password);
if($login === false){
$this->errors['nm'] = 'That Username/Password Combination Is Not Valid';
echo 'Login Failed!';
} else {
if(!$userFunctions->economyTableExistsForUser($login)){
$userFunctions->createEconomyTableForUser($login);
}
if(!$userFunctions->schoolTableExistsForUser($login)) {
$userFunctions->createSchoolTableForUser($login);
}
$_SESSION['user_id'] = $login;
echo $_SESSION['user_id']; // working fine
header('Location: ../home.php');
}
}
}