0

ログインシステムを作成しようとしています

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 の上書きでもありません。これはサーバー側のものでしょうか?

4

0 に答える 0