您的位置:首页 > 编程语言 > PHP开发

关于PHP中出现乱码和Sessions验证问题的解决方法!

2007-06-18 09:09 1011 查看
昨天晚上也没有写了!看今天有点时间就来写写了。这两天编了两天的程序都有1个多月没有写程序了!感觉好不熟悉的感觉了。没有想到这两天编程下来自己编的PHP程序出现了那么多的BUG问题的啦!总结出了一下几点经验:
1,PHP程序语言编码一定要统一为UTF-8,毕竟(UTF-8)这个玩意是国际化的统一编码啦。以前在ASP那里有这些来着,可能有但偶没有太注意的啦!PHP里面竟然有严格的规定要么为GB2312要么就是UTF8文件。如果选择其他的语言在里面中文会出现乱码的, 首先从这点就感觉PHP比ASP严格!如果你在PHP里没有重视这个问题估计你会出现乱码:首先自己分析问题在自己解决,然后在上Google查资料上BBS问别人,可能这个都是每一位程序员都会在不知道的情况下做的事情吧!我没有想到把程序写好了尽然用了2个小时解决这个问题!最终看了N多资料,终于知道了!作出一下简单的介绍了出现以下几种情况和解决方法:

A。在PHP脚本中读出中文或者其他语言文字为乱码的时候,首先检查你的文件格式是不是用UTF8的编码格式保存的。如果不是请用UltraEdit...等一些对UTF8支持转换的工具转换一下,最好不要用MS的记事本直接另存为转换,我开始的时候就是犯了这样一个错误如果你是在Macromedia Dreamweaver 8中编辑请按照:编辑---》首选参数---》新建文档 把语言设置为UTF8编码.

B。在读出MYSQL数据出现乱码的解决方法。刚刚开始偶还以为是MYSQL数据的问题.结果上BSS一问.才知道在读出MYSQL语句下边加上mysql_query (SET NAMES utf8)这样问题就解决了!

2。关于SESSION验证问题,这个问题弄了我4个小时的时间郁闷死了本来自己写好的时候一切正常但最后在我转换网页文件为UTF8格式的时候出现了错误。这个就是我跟大家说的不要直接用MS的记事本转换,因为他会在脚本程序的文件头加上一句签名(BOM)所以我直接转换了得出的结果就是错误了。提示什么在session_start()这个函数文件前边不能有其他的字符.这个说一下因为在UTF8中签名我们是看不见的所以就这样提示了!最终我用转换工具转换了一下还是有这样的提示而且程序还出现了错误。没有办法只有重新写了一下了。看这段PHP脚本语言还不是怎么的多,验证通过了还是出现错误提示!

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at G:/wwwroot/Nanny/admin/Session.php:1) in G:/wwwroot/Nanny/admin/Session.php on line 6

最终我想到了一个好的方法或许这样的问题有可能是一个BUG吧...或许这样也可以了 我在其他的文件头调用验证文件<?php include_once("session.php");?>我直接在Session.php文件里出错的那句session_start()函数前面 加了一个“@”符号!问题解决了!
HUHU 目前根据自己遇见的一些问题总结出的方法了@_@但最终项目还是按期完成了。。。高兴!!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: