浏览器关闭后如何保留sessionID?

时间:2013-12-18 13:08:21

标签: php cookies

这是我的PHP代码。

<?php  
 session_start();
 print_r($_COOKIE);
?>

Array ( [PHPSESSID] => vgojsl5kuuau35kpigsc5mepa3 ) 

当我通过浏览器关闭并再次点击我的php文件时。我知道了。

Array ( [PHPSESSID] => r0qaqm2h9o1oj5p70gpgi8k0c7 ) 

我想在Cookie中保存会话ID。所以,当我关闭浏览器并再次点击该文件时,每次点击时我应该获得相同的会话ID,直到用户清除cookie。

3 个答案:

答案 0 :(得分:4)

会话并不意味着这样做。每次关闭浏览器时,会话都会被破坏。你需要的是设置cookie。

...饼干

<?php
if(!isset($_COOKIE['cookiename']))
{
setcookie('cookiename','cookievalue',time()+3600);// This cookie lives for an hour
}
else
{
echo "Welcome ".$_COOKIE['cookiename'];
}

答案 1 :(得分:1)

检查你之前是否已保存过;如果不是:现在用当前的PHPSESSID保存它。

if(!$_COOKIE["SAVED_PHPSESSID"]) {
    setcookie("SAVED_PHPSESSID", $_COOKIE["PHPSESSID"], time() + (365 * 24 * 60 * 60));
}

答案 2 :(得分:1)

我认为Shankar Damodaran的回答是错误的。第二行应该从

更改
if(isset($_COOKIE['cookiename'])) to if(!isset($_COOKIE['cookiename'])) 

或者,第四行和第八行应交换位置。

更新: Shankar Damodaran已经改变了第二条线。现在他的回答是完美的。