我试用时得到错误404

时间:2014-02-07 08:57:16

标签: php request

我做了这个php,但我无法让它正常工作。当我输入姓名或单词时,我会收到Error 404

"编辑":谢谢我不再得到错误404但是当我输入名字时它仍然不起作用。我输入的文字,当我按下输入时,它会被删除并重新开始。任何人都知道我是否错过了什么以及如何解决它?

代码:

<?
     if(!isset($_REQUEST["name"])&&(!empty($_REQUEST["name"])))
     {
          echo "Hello".$_REQUEST["name"];
     }else
          echo "You have to type something!";
?>

<hr/>
<form method="post" action="<?=$_PHP_SELF?>">
     <input type="text" name="name"/>
</form>

6 个答案:

答案 0 :(得分:1)

替换:

<?=$_PHP_SELF?>

<?php echo $_SERVER['PHP_SELF']; ?>

默认情况下,没有名为$_PHP_SELF的内容。另外,请注意,在某些PHP版本中,PHP短标记可能会被标记为弃用。


如@krishna所述,使用$_SERVER['PHP_SELF']可能会导致XSS攻击。使用htmlspecialchars()转义网址。

另一方面,将action属性设置为空,符合HTML 4和5规范。见answer。如果您认为将实际网址设置为action属性很麻烦,可以使用action="?"action=".",其工作方式与action=""相同。

答案 1 :(得分:1)

试试这个

<?=$_SERVER['PHP_SELF']?>

<form method="post" action="">

答案 2 :(得分:1)

$_SERVER['PHP_SELF']容易遭受XSS攻击。请尽量避免使用htmlspecialchars()filter_input这样

action="<?php echo filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_URL) ?>"

action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, "utf-8"); ?>"

而不是

action="<?php echo $_SERVER['PHP_SELF']?>"

答案 3 :(得分:0)

您正在使用$_PHP_SELF错误。

输入:

<?=$_SERVER['PHP_SELF']?>

答案 4 :(得分:0)

请使用以下代码。我已经更改了表单操作,还更改了

中的以下行
!isset($_REQUEST["name"])

isset($_REQUEST["name"])

在您检查名称之前没有设置并且不是空的。

<?
if(isset($_REQUEST["name"])&&(!empty($_REQUEST["name"])))
{
    echo "Hello ".$_REQUEST["name"];
}
else
{
  echo "You have to type something!";
}

?>
<hr/>
<form method="post" action="">
<input type="text" name="name"/>
</form>

答案 5 :(得分:0)

<?
if(isset($_REQUEST["submit"])&&(!empty($_REQUEST["name"])))
  // and you are not checking for submission
{
echo "Hello".$_REQUEST["name"];
}
else
echo "You have to type something!";
?>
<hr/>
<form method="post" action="">
<input type="text" name="name"/>
<input type="submit" name="submit" />   // where is the submission ??
</form>