日期:2014-05-17  浏览次数:20556 次

PHP NEWBIE需要注意的一些问题
问题1:变量传递问题  

这个问题恐怕是大家见到的最多的问题了,总有朋友在问:为什么我装了PHP后,变量无法在页面间传递?  

PHP4.2版本后,将PHP.INI中register_globals的设置改成了Off,这就使原来的一些在低于4.2版本情况下可以运行的程序无法执行。  

之所以这么做是因为在register_globals设置为On的情况下,PHP本身会有安全隐患。在程序设计不严密的情况下,别人可以通过某些手段得到你在页面间传递的变量(很可怕的问题哦)。解决的方法有两个:一是将PHP.INI中的register_globals重新设置成On(不要吧?);二是在使用页面间传递变量的时候,使用PHP为我们准备好的全局变量集。如下:  

$_POST['varname'];//通过post方式提交的变量,多用于form的提交(<form method=post>)。  

$_GET['varname'];//通过get方式提交的变量,可用于from的提交(<form method=get>),也可以用来得到页面的参数(http://test.php?a=ok)。  

$_COOKIE['varname'];  

$_SESSION['varname'];//用于得到保存在session和cookie的变量。  

其实上面的这些变量名都可以写成另一种形式:$HTTP_*_VARS['varname'],即$HTTP_POST_VARS['varname'],$HTTP_GET_VARS['varname'],$HTTP_COOKIE_VARS['varname'],$HTTP_SESSION_VARS['varname'],不过似乎这么写也不太安全,所以大家就采用开始说的这种容易写,又较安全的方法吧。  

  

问题2:关于SESSION的设置  

Warning: open(tmp\sess_a18eaa908774d353293cf91777599c90, O_RDWR) failed: No such file or directory (2) in Unknown on line 0  

当程序中要使用SESSION时,有的朋友就会问这样的问题:为什么在使用SESSION的页面上会出现类似上面的警告呢?  

这种情况只会出现的WINDOWS系统中。这是因为在PHP.INI中,SESSION的默认存放路径session.save_path='\tmp',这其实是*nix的路径写法,而在WINDOWS下面是不存在这样的路径的。所以PHP找不到存放SESSION的地方,当然就要发出警告了。解决的方法就是将'\tmp'替换成一个WINDOWS系统下存在的目录的地址。  

还有一点问题,就是在使用SESSION的时候,要想在当前页面得到SESSION变量,就必须在程序的开始部分加上session_start(),而且在此之前不能有任何的输出。也就是说,最好就把session_start()写在第一行。  

  

问题3:关于页面最大执行时间  

当上传较大的文件,或是从数据库读取大量数据的时候,页面执行的时间可能变得很长。而PHP.INI中对于页面执行时间的最大限制默认为max_execution_time=30,也就是说当你的程序执行了30秒还没结束,就会自动停止响应。所以当你要执行的程序花费时间要较长时间的时候,可以修改max_execution_time=300或更大,以确保程序的正常执行。如果是上传文件的话,还要同时注意以下几个设置:  

upload_max_filesize=2M //上传文件最大容量  

post_max_size=2M //通过post方法提交的文件最大容量  

memory_limit=8M //每个页面执行时消耗的最大内存  

  

  

---------------------------  

一般的程序设置max_execution_time=30,应该就足够了。  

超过这个时间大多是死循环。  


------解决方案--------------------
探讨

啥叫MVP啊?很少见啊

------解决方案--------------------
探讨

引用:

啥叫MVP啊?很少见啊
微软 MVP(最有价值专家)介绍
微软最有价值专家 (MVP) 是指具备一种或多种微软技术专业知识,并且积极参与在线或离线的社群活动,经常与其他专业人士分享知识和专业技能,受人尊敬、 信任,而且平易近人的专家。
实际生活中,人们总是信任专家的建议和反馈。微软 MVP 正是这样一群拥有丰富知识和实际经验的微软技术专家。他们不是微软的员工……