Open GoogleCodeExporter opened 8 years ago
看了一下log文件,php获取session id失败。
你的php服务器其他需要session的程序正常吗?比如discuz、phpbb��
�类的。
Original comment by lehui99
on 13 Jun 2011 at 2:41
没试过,这是dreamhost的空间。。但是我看它的在线安装app列��
�里面有phpbb,是否可以说它支持phpbb呢?
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 3:05
t1.sid=iv0u4img8nh9v33oijk4n7doa1,t1.esid=iv0u4img8nh9v33oijk4n7doa1 test1
t2.sid=iv0u4img8nh9v33oijk4n7doa1,t2.esid=iv0u4img8nh9v33oijk4n7doa1 test2
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 6:15
再试试看:
1、访问test1.php,记录结果,页面不要关闭
2、访问test2.php,记录结果
3、刷新test1.php,记录结果
这3次结果是什么?
Original comment by lehui99
on 13 Jun 2011 at 6:21
1) t1.sid=ujs0vbklg3f9o6mg4k4shlff15,t1.esid=ujs0vbklg3f9o6mg4k4shlff15
2) t2.sid=,t2.esid=
3) t1.sid=mccg5lbs3mla51sgidocnq1g95,t1.esid=mccg5lbs3mla51sgidocnq1g95
这次变成这样的了
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 6:27
这就是问题所在,很简单的2个php,第一个php新建session,打印
出session id。第二个php取现有的session id。
结果:第一个php创建session的session
id,在第二个php中取不到,然后在重新访问第一个php时却被认
为没有创建过session,又重新创建了session,导致了session
id变了。
这种情况,discuz和phpbb之类的需要session的php程序,应该都用��
�了。
Original comment by lehui99
on 13 Jun 2011 at 6:42
[deleted comment]
研究了一下网上相应的issue,是不是与dreamhost用的5.2.3
PHP-CGI。。
不知道下面这一段是啥意思。
First, storing to session...
<?
// Store to session
session_start();
$_SESSION['mySessionName'] = "sessionidentifier";
?>
Next, reading from session...
<?
// read from session
session_start();
echo $_SESSION['mySessionName'];
?>
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 6:56
DH提供PHP 5.2 FastCGI(default),PHP 5.2 CGI以及PHP 5.3 FastCGI和PHP
5.3 CGI四种php
mod,不知道是不是和这个有关系?看网上也有人碰到类似的��
�题。
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 7:23
If you are expecting global variables to be automatically created from session
variables, then your other setup must have register_globals enabled in the
php.ini file. DreamHost's PHP 5 setup has this option disabled because it can
cause serious security issues. See below wiki page for more information.
http://wiki.dreamhost.com/Register_globals
这应该是权威解释了,希望对作者有帮助。不知道能不能解��
�这个问题
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 7:34
session_start(): 创建session,如果有session,那么使用现有session。
$_SESSION['key']就是取或者存session的数据,这个和问题无关。
现在就是你的php服务器每次调用session_start()时,如果有session�
��那么也会新建session,而不是使用现有的session。
但现在好像你第一次测试test1.php和test2.php的时候没有这个问��
�,第二次测试的时候又有问题了,好像这个问题不是每次都�
��现的。
Original comment by lehui99
on 13 Jun 2011 at 7:54
哦, http://wiki.dreamhost.com/Register_globals
上面说,你必须修改php.ini才能正常使用session。
或许就是这个问题,你试试看按照要求修改一下呢?
Original comment by lehui99
on 13 Jun 2011 at 7:55
共享空间,我是改不了php.ini的。似乎那个wiki页说superglobal
array variables可以解决这个问题?
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 8:10
那个wiki中没有说使用superglobal array
variables后,如何取到session id?
本来session id是通过session_id()获取的。
Original comment by lehui99
on 13 Jun 2011 at 8:33
http://php.bigresource.com/-_session-how-to-get-current-session-ID-WCBbnEea.html
http://php.net/manual/en/function.session-id.php
不知道,我用google到了以上两个网页。不知道有没有参考意��
�
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 8:54
你给的网页中说的就是本来用的方法啊。
Original comment by lehui99
on 13 Jun 2011 at 9:00
怎么样了?
Original comment by lehui99
on 13 Jun 2011 at 10:09
我改不了php.ini 所以也没办法解决。用不了
Original comment by qgt...@gmail.com
on 13 Jun 2011 at 11:41
那你怎么用discuz呢?
Original comment by lehui99
on 13 Jun 2011 at 2:04
不用啊,呵呵。我是用来放普通网站的。
Original comment by qgt...@gmail.com
on 14 Jun 2011 at 12:25
普通网站没有用php的session吗?
Original comment by lehui99
on 14 Jun 2011 at 2:27
我不知道,我用的dedecms织梦系统做的网站。运作的很好
Original comment by qgt...@gmail.com
on 14 Jun 2011 at 2:46
要不你试试看用一下使用php
session的程序看看?如果能解决,那么phpsocks5应该也能解决。
Original comment by lehui99
on 14 Jun 2011 at 2:52
Original issue reported on code.google.com by
qgt...@gmail.com
on 13 Jun 2011 at 2:02Attachments: