ログインシステムを作成しようとしています
1) ユーザーが電子メールとパスワードを入力する 2) 電子メールとパスワードが DB に対して検証される 3) トークンが「logins」テーブルに置かれ、Cookie を介してローカルに保存される 4) ログインが必要なすべてのページで、Cookie トークンがDB のトークン。
ということで、以下のコードで上書きしようとし$_COOKIE['stored_login_token']
ているのですが、うまくいきません。基本的に、ユーザー ID、トークン、ログイン日、およびトークンの有効期限を格納する「logins」というテーブルがあります。以下のコードは、DB でランダムに生成されたトークンを適切に更新していますが、network_updates.php にリダイレクトする前に Cookie を上書きしていません。
//Login Script
$mysqli2 = new mysqli($db_host,$db_username,$db_password,$db_name);
$login_post_signup_token = generateRandomString();
$expiration_date = date('Y-m-d H:i:s', strtotime('+365 days'));
$suloginid = '';
$stmnt2 = $mysqli2->prepare("INSERT INTO logins (id, user, loginDate, token, expiration) VALUES (?, ?, ?, ?, ?)");
$stmnt2->bind_param('issss',
$suloginid,
$uuid,
$date,
$login_post_signup_token,
$expiration_date);
$stmnt2->execute();
$stmnt2->close();
$mysqli2->close();
setcookie(
"stored_login_token",
$login_post_signup_token,
time() + (10 * 365 * 24 * 60 * 60),
'/'
);
header('Location: network_updates.php');
exit();
setcookie() コードの上に、次のような「if」ステートメントがいくつかあります。
if (mysqli_num_rows($grabuserinfo) < 1) {
header('Location: index.php?login=invalidemail');
mysqli_close($mysqlicon);
exit();
}
しかし、それが問題の根本であるべきではないと思います。
さらに、「updatecookie.php」というページを作成して、一般的な Cookie の更新のみをテストしました。このページの唯一のコードは次のとおりです。
setcookie('stored_login_token','temp123',time()+3600,'/');
header('Location: http://iseyoo.com/dev/index.php');
また、それは Cookie の上書きでもありません。これはサーバー側のものでしょうか?