我在Windows 7(x64)上使用Apache 2.4.4和PHP 5.4.14。我遇到的问题是php会话不会保留。这也发生在Apache 2.2和PHP 5.4.4上,昨天更新,希望它只是在php.ini
的糟糕设置,但没有任何改变。PHP/Apache - 会话不会出现问题
在chrome中,仅当我使用重写规则时,每个页面的会话id发生更改。当使用重写规则时,曲奇path
奇怪地变为/pages_name/
,而不是剩余/
。
在opera中,即使刷新页面,会话ID也会更改。在IE中也是如此。
在这两种情况下,cookies都被浏览器接受。其中
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?page=$1&info1=$2&info2=$3 [L]
RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9]+)/?$ index.php?page=$1&info1=$2 [L]
RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [L]
搜索后,我遇到了一些“解决方案”没有工作
会话保存路径工作,文件被writen。使用默认会话处理程序
设置session.cookie_path
到/
设置session.cookie_lifetime
到其他然后0
我不使用session_regenerate_id
session_start();
是代码上
所有页面的第一行如果需要了解更多信息我会更新这篇文章,谢谢。
在进一步研究它原来是与RewriteRule
S,不知道如何解决它仍然是一个问题。
另外从session_start()
的cookies设置为localhost/home/
就好像它是一个文件夹,但它是一个变量localhost/index.php?page=home
。正因为如此,每一个页面都有自己的session id
,任何想法修复?
您是否检查过正在写入会话文件的路径?是否有越来越多的文件是根据每个请求创建的,或者根本没有? (假设你正在使用默认的会话处理程序)。 – leftclickben
忘了提及,是的路径是好的,越来越多的文件被创建与每个请求。我正在使用默认的会话处理程序。 – MPKaboose
是否有碰巧在URL中传递的会话信息?像在查询字符串? –