PHP编程小经验总结

发布时间:2019-12-11编辑:脚本学堂
PHP编程小经验总结

1、为什么PHP的echo多行批量输出为空白?
答:
echo <<<hdv
内容1;
内容2;
hdv;
//hdv必须顶格,并且且后面似乎也不能有任何字符包括空格输出;

2、在使用session_start()函数时,为什么PHP输出空白?
答:必须设置D:usrlocalphp目录下的PHP.INI文件里面的session.save_path
存储路径,并且该路径必须为实际存在的路径,否则输出为空白,也就是没有任何输出。
还需要注意:
有些USR目录的快捷方式到PHP.INI的文件,可能不是指向D:usrlocalphp,而是指向%SystemRoot%php.ini目录的,所以在使用自带PHP.INI快捷方式编辑PHP.INI文件的时候,要注意实际的编辑对象。

3、为什么我升级PHP后,原来的程序出现满屏的 Notice: Undefined variable?
答:这是警告的意思,由于变量未定义引起的,打开php.ini,找到最下面的error_reporting,修改为error_reporting = E_ALL & ~E_NOTICE
对于Parse error错误error_reporting(0)无法关闭。
如果你想关闭任何错误提示,请打开php.ini,找到display_errors,设置为display_errors = Off.以后任何错误都不会提示。

4、经验:PHP函数传递数组,要求参数必须是数组形式,不能为常量或者非数组变量。

5、如何更好的分析URL以及引用或提取URL路径问题?
答:
echo "<pre>;";
print_r($_SERVER);
所有服务器方法都会显示出来。

6、为什么使用COOKIE传递变量会失败?
答:
请先检查COOKIE中的服务器端作用域设置情况,有可能因为作用域问题总是传递不过去变量;

7、为什么有时候采用非IE默认编码字符的网页有时候可以正常显示有时候不可以正常显示,甚至什么都不显示(显示空白)?
答:
请注意,把字符默认编码设置放到TITLE之前,先后次序如下(事例):
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登录管理系统-管理员控制面板</title>
请不要把<title></title>设置在meta之前,否则可能无法正常显示IE6下测试如此;

8、为什么SESSION变量值与随机值总是不同?
这个是笔者遇到奇怪的问题,例子如下:(写入SESSION变量值与随机值总是不同)
$cbcc=rand(1,1000);
//if(!isset($_SESSION['cbconfirmcode']))
//{
// unset($_SESSION['cbconfirmcode']);//comfirm buy rand code,确认购买随机码
//}
 
$_SESSION['cbconfirmcode']=$cbcc;
echo $_SESSION['cbconfirmcode'].'*****';
<input type="hidden" value="<?php echo $cbcc;?>"  name="cbconfirmcode"/>
...
<img title="" height="2" alt=" " src="#" width="1" />
...
最后查出是因为插入的图象SRC地址用#造成的,我也不知道为什么。去掉插入的图象就可以了,加上就不对,未做深入研究;

9、经验:当使用UPDATE 查询,mysql 不会将原值和新值一样的列更新。这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。MYSQL UPDATE语句执行时候,如果要更新的记录与原来的记录相同,则使用mysql_affect_rows()时,MYSQL会返回0值!所以在使用mysql_affected_rows检测更新行数时候要特别小心。