My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions
Issue 26: 部署成功,但是就是不能用
1 person starred this issue and may be notified of changes. Back to list
Status:  New
Owner:  ----


 
Reported by qgt...@gmail.com, Jun 12, 2011
远程看到sql表建立成功,但是就是不能使用。log里面有exception,看不懂,请作者帮忙看看


socks5err.zip
9.7 KB   Download
phpsocks5_log.zip
25.9 KB   Download
Jun 12, 2011
Project Member #1 lehui99
看了一下log文件,php获取session id失败。

你的php服务器其他需要session的程序正常吗?比如discuz、phpbb之类的。
Jun 12, 2011
#2 qgt...@gmail.com
没试过,这是dreamhost的空间。。但是我看它的在线安装app列表里面有phpbb,是否可以说它支持phpbb呢?
Jun 12, 2011
Project Member #3 lehui99
2个测试文件,放上去后用浏览器先访问test1.php,然后访问test2.php(不要先访问test2.php)。

然后访问后看一下test1.php和test2.php在浏览器中分别显示什么?
test1.php
159 bytes   View   Download
test2.php
150 bytes   View   Download
Jun 12, 2011
#4 qgt...@gmail.com
t1.sid=iv0u4img8nh9v33oijk4n7doa1,t1.esid=iv0u4img8nh9v33oijk4n7doa1 test1
t2.sid=iv0u4img8nh9v33oijk4n7doa1,t2.esid=iv0u4img8nh9v33oijk4n7doa1 test2
Jun 12, 2011
Project Member #5 lehui99
再试试看:
1、访问test1.php,记录结果,页面不要关闭
2、访问test2.php,记录结果
3、刷新test1.php,记录结果
这3次结果是什么?
Jun 12, 2011
#6 qgt...@gmail.com
1)  t1.sid=ujs0vbklg3f9o6mg4k4shlff15,t1.esid=ujs0vbklg3f9o6mg4k4shlff15
2)  t2.sid=,t2.esid=
3)  t1.sid=mccg5lbs3mla51sgidocnq1g95,t1.esid=mccg5lbs3mla51sgidocnq1g95

这次变成这样的了
Jun 12, 2011
Project Member #7 lehui99
这就是问题所在,很简单的2个php,第一个php新建session,打印出session id。第二个php取现有的session id。
结果:第一个php创建session的session id,在第二个php中取不到,然后在重新访问第一个php时却被认为没有创建过session,又重新创建了session,导致了session id变了。
这种情况,discuz和phpbb之类的需要session的php程序,应该都用不了。
Jun 12, 2011
#9 qgt...@gmail.com
研究了一下网上相应的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'];
?>

Jun 13, 2011
#10 qgt...@gmail.com
DH提供PHP 5.2 FastCGI(default),PHP 5.2 CGI以及PHP 5.3 FastCGI和PHP 5.3 CGI四种php mod,不知道是不是和这个有关系?看网上也有人碰到类似的问题。
Jun 13, 2011
#11 qgt...@gmail.com
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

这应该是权威解释了,希望对作者有帮助。不知道能不能解决这个问题
Jun 13, 2011
Project Member #12 lehui99
session_start(): 创建session,如果有session,那么使用现有session。

$_SESSION['key']就是取或者存session的数据,这个和问题无关。

现在就是你的php服务器每次调用session_start()时,如果有session,那么也会新建session,而不是使用现有的session。

但现在好像你第一次测试test1.php和test2.php的时候没有这个问题,第二次测试的时候又有问题了,好像这个问题不是每次都出现的。
Jun 13, 2011
Project Member #13 lehui99
哦, http://wiki.dreamhost.com/Register_globals 上面说,你必须修改php.ini才能正常使用session。
或许就是这个问题,你试试看按照要求修改一下呢?
Jun 13, 2011
#14 qgt...@gmail.com
共享空间,我是改不了php.ini的。似乎那个wiki页说superglobal array variables可以解决这个问题?
Jun 13, 2011
Project Member #15 lehui99
那个wiki中没有说使用superglobal array variables后,如何取到session id?

本来session id是通过session_id()获取的。
Jun 13, 2011
#16 qgt...@gmail.com
http://php.bigresource.com/-_session-how-to-get-current-session-ID-WCBbnEea.html
http://php.net/manual/en/function.session-id.php

不知道,我用google到了以上两个网页。不知道有没有参考意义
Jun 13, 2011
Project Member #17 lehui99
你给的网页中说的就是本来用的方法啊。
Jun 13, 2011
Project Member #18 lehui99
怎么样了?
Jun 13, 2011
#19 qgt...@gmail.com
我改不了php.ini 所以也没办法解决。用不了
Jun 13, 2011
Project Member #20 lehui99
那你怎么用discuz呢?
Jun 13, 2011
#21 qgt...@gmail.com
不用啊,呵呵。我是用来放普通网站的。
Jun 13, 2011
Project Member #22 lehui99
普通网站没有用php的session吗?
Jun 13, 2011
#23 qgt...@gmail.com
我不知道,我用的dedecms织梦系统做的网站。运作的很好
Jun 13, 2011
Project Member #24 lehui99
要不你试试看用一下使用php session的程序看看?如果能解决,那么phpsocks5应该也能解决。

Powered by Google Project Hosting