Webサイトでのログインの永続性を維持するためにCookieを使用しようとしています。しかし、なんらかの理由で私にはわかりませんが、Cookieは作成されていません。セッションのみが作成されています。ログインしたユーザーを追跡するためにSessionsを使用し、戻ってきたときにセッションを再作成するためにCookieを使用しています。私は何が間違っているのですか?
セッションとCookieを作成します。
<?php
$connect= // connect variables
$query= "SELECT * FROM users where email= '$email' AND password=
'$password'";
$result= mysqli_query($connect, $query)
or die('error with query');
if (mysqli_num_rows($result) == 1) {
$row= mysqli_fetch_array($result);
session_start();
$_SESSION['id']= $row['user_id'];
$_SESSION['name']= $row['fname'] . " " . $row['lname'];
setcookie('id', $row['user_id']);
$profile_url= 'http://'. $_SERVER['HTTP_HOST'] .
dirname($_SERVER['PHP_SELF']) . '/profile.php';
header('Location:profile.php');
}
else {
$message= "Incorrect email/password combination.";
}
?>
セッションを復元するためのCookieを確認します。
<?php
session_start()
/* if a session does not exist, see if a cookie does to set the session */
if (!isset($_SESSION['id'])) {
if (isset($_COOKIE['id'])) {
$_SESSION['id'] = $_COOKIE['id'];
}
else {
}
}
?>
編集
Cookieに有効期限パラメータを追加する必要がありました。
setcookie('id', $row['user_id'],time()+86400);
Note: The above example sets the cookie for 1 day