奇怪,求教 [ 新手入门 ]
blog/index.php?r=site/login
输入demo demo 链接数据库认证完全正常。 就算输入lsdkfjsdjf 密码lskdjflskdjf 也没问题,出现提示密码错误 然是只要用户名中有中文出现,就会出现 [attach]268[/attach]
而同样的代码在demo/blog里面是没有问题的。问问老大,什么回事呢?
共 8 条回复
-
我猜应该是这个问题
PHP strtolower() 乱码问题
strtolower()函数里面的参数的值如果是中文,例如strtolower("测试"),返回的结果会变成乱码...
然后就google了一下,没有找到问题所在,却发现大家都极力不建议使用strtolower()这个函数...
于是偶竭尽全力查找问题,系统是debian linux平台,很快投诉方提供了一台不会乱码的机器,于是偶开始对比两台机器的不同...两台机器是同一批机器,系统都是同一时间安装的...
apache的配置文件,php的配置文件完全一样...一个头顿时变成两个大...
最后发现 在phpinfo()的Environment这一节里面,不产生乱码的只有两个环境变量:LANG,PATH;可是产生乱码的那台机器就多了去了,而且LANG=US_en,连启动apache的时候从那个ip登录进来的都可以看到...感觉问题出在了apache上,差不多排出了php的问题。
然后查看apache的配置文件...用env命令查看环境变量...用 /etc/init.d/apache restart 重起了一下,突然发现系统不再产生乱码了。奇怪啊?
查了半天没有找到问题,然后只好去正常的那台机器上 apachectl restart 一下,很快就有人问为啥那台正常的也开始乱码了?
立即开始思考刚才在正常的那台机器上做了什么?好像就是重起了一下apache...不过...我真的要佩服自己一下,我的手指完全不受控制的敲了history,让我发现重起apache的时候采用了不同的命令!
/etc/init.d/apache restart
apachectl restart
立即使用 /etc/init.d/apache restart 重起apache,乱码症状消失,问题的一解决
用vi打开 /etc/init.d/apache 发现原来启动Apache是这样的:
env -i LANG=C PATH=/bin:/usr/bin:/usr/local/bin apachectl start
如果你的apache安装在/usr/local/apache_1.3.34/bin 下,就要用:
env -i LANG=C PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/apache_1.3.34/bin apachectl start -
menghuangxiao 回复于 2012-09-13 10:17 举报
我也出现同样的问题,看到你的帖子,我一下就解决了!
感谢分享!
纸飞机
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱75
- 威望0
- 积分75