Home  >  Article  >  Backend Development  >  表单$_post[]的有关问题

表单$_post[]的有关问题

WBOY
WBOYOriginal
2016-06-13 12:10:35896browse

表单$_post[]的问题
表单action指向本身所在页面
提交按钮

下面有一个判断 if($_Get['search'])
如果有值,说明点击了查询按钮,执行啥啥操作
如果没有值,仅仅显示本页面静态部分。

5.3可以运行
使用PHP5.5之后却无法显示该网页

请问解决办法吧。这是怎么回事?所有代码都需要重写?
------解决思路----------------------
$_GET[search] 
不加引号。PHP首先会查找search常量,找不到所以就报错了。

如果不想改代码,可以在首行加上:error_reporting(E_ALL & ~E_NOTICE); 这句,就可以将notice错误报告屏蔽掉。
------解决思路----------------------
你可以把错误调试打开,如果是网页无法显示,应该是哪里有问题。
------解决思路----------------------
加引號這個是標準寫法。
為什麼不按標準呢。。
------解决思路----------------------
出现这个错误提示的原因,PHP会把没有引号引起来的键名当作是常量去获取, 当找不到的时候, 抛出一个NOTICE, 然后再根据“常量名”生成一个字符串, 然后再讲这个字符串做为键名继续~

可以設置error_reporting(E_ALL & ~E_NOTICE); 來屏蔽錯誤顯示。但最好還是加引號,這樣不需要在將常量轉字符去獲取多次,提高效率。
------解决思路----------------------
这与 php 版本无关,但与 php 环境设置有关
当然,随着 php 版本的升级,你受到的约束也在升级

 if($_Get['search']) 将可能会产生一个 E_NOTICE 级别的错误信息
如果你没有打开错误显示,或将错误信息重定向到日志
那么由于错误信息没有出路,导致一个 HTTP 500 状态(服务器拒绝响应)

虽然屏蔽掉 E_NOTICE 级别错误检查,可以回避掉这个毛病
但隐患终究是存在的,程序是不健壮的

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn