0

我正在使用 PHP 语言。我正在一个网站上制作。在我的登录页面中,检查用户是否输入了正确的信息后。我想将idand存储name在会话或 cookie 中,以便我可以在其他页面中使用它们,但我不知道哪个是安全且有用的。我已经阅读了很多问题,但我没有得到答案。COOKIESESSION哪个更好。

我想制作 cookie 1 小时,但如果用户刷新页面,时间将重新开始。

setcookie("registration",true,time()+3600,'/');

我在上面制作的 cookie 会做我想要的工作吗?

4

1 回答 1

1

我更喜欢会话,

使用 cookie,所有内容都存储在客户端,并针对每个页面在网络上传输,可以是:

  • 由用户修改

  • 被任何人嗅探,如果不使用 HTTPS

对于会话,所有内容(当然会话标识符除外)都存储在服务器上,这意味着它只能由您的代码修改,而不能由用户修改,用户甚至看不到那里有什么。

您可以使用,

$seconds = 60*60;
$_SESSION['timeout'] = time() + $seconds;

您可以检查为,

if (!empty($_SESSION['timeout'])) {
    $timeDiffernce = time() - $_SESSION['timeout'];
    if ($timeDiffernce > 3600) { // exprie after one hour (3600 seconds)
        // unset session
        unset($_SESSION['username']);
        unset($_SESSION['password']);
        unset($_SESSION['timeout']);

        // get login form
} else {
    // do your session code
}  
于 2013-09-10T06:37:12.867 回答