2015-11-02 107 views
0
<?php 
    if (empty(htmlspecialchars($_GET["default"]))) { 
     echo 'Click to type...'; 
    } else {  
     echo urldecode(htmlspecialchars($_GET["default"])); 
    } 
?> 

我的代码有问题。它不会回显“点击键入...”,它什么也不做。哪里不对?非常感谢,我是PHP的noob。

+1

你有任何'HTML'传递'$ _GET'吗?你也应该在验证中删除'htmlspecialschars',如果不是空的话,没有必要做两次。 – Script47

+1

为什么htmlspecialchars()只测试它是否为空?为什么不只是空的($ _ GET ...)'? –

+0

尝试:'echo $ _GET [“default”];'看看它是什么。 – divix

回答

0

尝试:

if (!isset($_GET["default"]) || empty(htmlspecialchars($_GET["default"]))) { 

你有使用error_reporting吗?

0

为什么你有你的if内有htmlspecialchars?如果你想一会儿,你就不需要它了。

我可以给你的建议是用一些调试($ _GET上的var_dump或使用xdebug)来检查你的请求。

你也可以检查你的网址,看看你是否有类似localhost/someaction.php?default=something&other_get_parameter=somethingelse&....。如果它位于表单上,那么您可以在浏览器中查看您的开发人员工具。