查看: 22243|回复: 109

[新功能] [V9正式版适用]【BUG修复】修复某些服务器下表单验证失败,无法登陆、注册等问题

    [复制链接]
发表于 2010-12-27 22:56:03 | 显示全部楼层 |阅读模式
本帖最后由 boyr 于 2011-5-26 19:27 编辑

V9正式版已出,BUG依旧存在,特此修正!
BUG现象:
在某些服务器下【已确认包含IIS5.1】出现如下状况:
1、前台会员无法登陆;
2、前台无法注册新会员,但后台查看phpsso下已经注册成功;
3、后台无法添加新会员,但后台查看phpsso下已经注册成功;
4、前台表单验证失败,比如,用已经存在的会员名注册,并不提示“会员已存在”等等;
5、后台表单验证失败。

原因分析:
由于服务器返回post请求时附带了大量的头部信息,造成post返回结果取值不正确,导致以上诸多问题。【感谢zjcflowers提示】
例如:前台登陆时,应该返回:

  1. a:13:{s:3:"uid";s:1:"1";s:8:"username";s:6:"phpcms";s:8:"password";s:32:"a13525045a99fb8d904b8f3874772d67";s:6:"random";s:6:"5RgQQA";s:5:"email";s:13:"admin@126.com";s:5:"regip";s:9:"127.0.0.1";s:7:"regdate";s:10:"1293179825";s:6:"lastip";s:1:"0";s:8:"lastdate";s:10:"1293179825";s:7:"appname";s:9:"phpcms v9";s:4:"type";s:3:"app";s:6:"avatar";s:1:"0";s:8:"ucuserid";s:1:"0";}
复制代码

但是服务器返回结果的前面还带有头信息:

  1. HTTP/1.1 200 OK
  2. Server: Microsoft-IIS/5.1
  3. Date: Mon, 27 Dec 2010 10:46:13 GMT
  4. X-Powered-By: ASP.NET
  5. Connection: close
  6. X-Powered-By: PHP/5.3.3
  7. Content-type: text/html; charset=gbk
  8. Content-Length: 376

  9. a:13:{s:3:"uid";s:1:"1";s:8:"username";s:6:"phpcms";s:8:"password";s:32:"a13525045a99fb8d904b8f3874772d67";s:6:"random";s:6:"5RgQQA";s:5:"email";s:13:"admin@126.com";s:5:"regip";s:9:"127.0.0.1";s:7:"regdate";s:10:"1293179825";s:6:"lastip";s:1:"0";s:8:"lastdate";s:10:"1293179825";s:7:"appname";s:9:"phpcms v9";s:4:"type";s:3:"app";s:6:"avatar";s:1:"0";s:8:"ucuserid";s:1:"0";}
复制代码

所以需要过滤掉头信息。分析源码发现官方处理有问题,只需增加三个字符即可解决以上所有BUG,方法如下:

找到\phpcms\modules\member\classes\client.class.php文件;
找到371行“$return_arr = explode("\n", $return);”
【370行还有官方的注释“//部分虚拟主机返回数值有误,暂不确定原因,过滤返回数据格式”。看来已经发现问题,就是没有正确解决】
修改为“$return_arr = explode("\r\n\r\n", $return);”

完工,iis及apache下测试良好,希望官方能够解决这个问题。
 楼主| 发表于 2010-12-27 22:57:48 | 显示全部楼层
沙发自己来,希望版主能够置顶啥的,方便大家看到!
回复 支持 反对

使用道具 举报

发表于 2010-12-28 08:55:15 | 显示全部楼层
方便大家看到!
回复 支持 反对

使用道具 举报

发表于 2010-12-28 09:12:30 | 显示全部楼层
thanks for sharing...
回复 支持 反对

使用道具 举报

发表于 2010-12-28 09:28:52 | 显示全部楼层
方便大家看到!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 12:12:56 | 显示全部楼层
V9正式版BUG依旧
回复 支持 反对

使用道具 举报

发表于 2010-12-29 12:38:55 | 显示全部楼层
跟服务器有关吧?IIS5.1?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 13:02:35 | 显示全部楼层
回复 7# csecong


    没错,有些服务器会出问题。但是修复后就不挑服务器了
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:05:09 | 显示全部楼层
方便大家看到!
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:17:59 | 显示全部楼层
好东西,看看
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:21:54 | 显示全部楼层
强力人士
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:26:49 | 显示全部楼层
感谢分享~
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:37:45 | 显示全部楼层
看mark一下
回复 支持 反对

使用道具 举报

发表于 2010-12-29 14:23:03 | 显示全部楼层
kankanzheg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 16:01:48 | 显示全部楼层
官方看一眼吧,很多人都有这个问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 点击这里注册

本版积分规则

小黑屋|Archiver|phpcms网站管理系统 ( 京ICP备14011169 )

GMT+8, 2019-10-20 07:00 , Processed in 0.264225 second(s), 8 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表