“session_start()”生成新的会话ID,而不是加载可用的会话ID

时间:2016-12-25 22:28:51

标签: php browser wamp session-cookies

会话文件夹中的每个session_start()调用都会创建一个新的会话ID,但从未在下一页上加载。

我用来检查它的代码:

(没有代码,“session_start();”之前没有空格,这是直接在顶部)

<?php
session_start();

var_dump($_SESSION);
echo boolStr(is_writable(session_save_path())) . " and ";
echo boolStr(is_readable(session_save_path())) . "<br>";

if (!isset($_SESSION['counter'])){
    $_SESSION['counter']=0;
}

echo "Refreshed: ". $_SESSION['counter'] ." times.<br>
$_SESSION['counter']++;

<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">refresh!</a>"; 


function boolStr($val)
    {
        return $val ? 'true' : 'false';
    }
?>

计数器变量随着“$ _SESSION ['counter'] ++;而增加;”但在加载刷新页面后再次为0,会话ID在地址栏中更改。

输出:

D:\wamp64\www\sessions.php:4:
array (size=0) 
  empty

true and true
Refreshed 0 times.
refresh

的php.ini:

session.save_handler = files
session.save_path ="D:/wamp64/tmp"
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain = /
session.cookie_httponly = 1
session.cookie_secure = 0
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.entropy_length = 32
session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = sha256
session.hash_bits_per_character = 5

Sessions在上个月工作正常,但是当我关闭浏览器(我休眠电脑并且几乎从不关机)时,出现了问题。我真的没有看到与浏览器的连接,因为我之后用Chrome而不是Firefox尝试了它,它也遇到了同样的问题。

我如何知道session_start()尝试加载会话cookie时会发生什么?如果我能够看看session_start()是如何工作的,也许我可以找出发生了什么。

感谢。

1 个答案:

答案 0 :(得分:0)

经过一天以上的尝试,没有任何结果,我想我也可以安装和使用XAMPP而且会话在那里工作,所以问题必须来自WAMP服务器。