-1

我将此代码粘贴在我的登录页面顶部,如果用户已经登录,它应该将用户重定向回主页,但它不起作用,它什么也不做,即使我知道 cookie 已设置。为了更加确定 cookie 是否已设置,我进入 chrome 设置并检查了我网站存储的所有 cookie,果然,我的 cookie 已设置在那里。我不知道为什么这不起作用,这可能只是我犯的一个愚蠢的小错误,但我整晚都在编程,我想一双新的眼睛可能会发现我可能错过的东西。

代码:

<?php
    if(isset($_COOKIE['user'])){
        header("Location: index.php?content=home");
    }
?>

如何分配 cookie:

<?php
$user = $_POST['user'];
$pass = $_POST['pass'];

$redir = $_GET['redir'];

include('con.php');

$query = mysql_query("SELECT * FROM users WHERE name='{$user}'");
$numrows = mysql_num_rows($query);
$array = mysql_fetch_array($query);

if($user==""||$pass==""){
    header('Location: ../login.php?error=Please fill out EVERYTHING&redir=' . $redir);
}

else if($numrows < 1){
    header('Location: ../login.php?error=User does not exist&redir=' . $redir);
}

else if($pass !=$array['pass']){
    header('Location: ../login.php?error=Invalid user/pass combo&redir=' . $redir);
}

else{
    setcookie("user", $array['ID']);
    header('Location: ../index.php?content=' . $redir);
}

?>

编辑:以下是我得到的 print_r($_COOKIE)

Array
(
    [_okbk] => cd4=true,vi5=0,vi4=1381557924453,vi3=active,vi2=false,vi1=false,cd8=chat,cd6=0,cd5=away,cd3=false,cd2=0,cd1=0,
    [_ok] => 5197-288-10-3215
    [olfsk] => olfsk8855679365806282
    [wcsid] => aqVZBde4DlLmegpG5L3JS16nDXl0aIA9
    [hblid] => oBSPj2E8hdamA4nK5L3JS16nDXrqAaPK
    [_oklv] => 1381563654520,aqVZBde4DlLmegpG5L3JS16nDXl0aIA9
)
4

1 回答 1

2

您正在将 cookie 设置为 0 秒,例如setcookie("user", $array['ID']);. 中的第三个参数setcookie$expire,默认情况下它是=0.

setcookie("user", $array['ID'], 3600, '/'); # set cookie for 1 hour and for whole domain
于 2013-10-12T08:17:25.490 回答