无法覆盖/替换现有cookie

时间:2013-09-18 01:09:29

标签: php cookies

我正在尝试创建一个登录系统

1)用户输入电子邮件和pw 2)电子邮件和pw针对DB进行验证3)令牌放在“登录”表中并通过cookie 4)本地存储在需要登录的所有页面上,烹饪令牌为检查数据库中的令牌。

考虑到这一点,我试图用下面的代码覆盖$_COOKIE['stored_login_token'],但它似乎不起作用。基本上,我有一个名为'logins'的表,它存储用户ID,令牌,登录日期和令牌到期日期。下面的代码正确更新数据库中随机生成的令牌,但在重定向到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。这可能是服务器端的事吗?

0 个答案:

没有答案