404错误 - 请求的URL /<在这服务器上没找到。为什么?

时间:2016-06-27 09:18:40

标签: php html forms

我刚刚在新的MacOS El Capitan安装上设置了AMP。我不知道为什么,但每次我尝试运行一个PHP处理的简单HTML表单时,我都会收到404错误。我已经尝试使用默认的MacOS文档根目录,我也尝试使用用户级文档根目录,我甚至安装了MAMP作为最后的手段。在所有这些设置中,当我点击提交按钮时结果总是相同的:404。

<?php if(isset($_POST['submit'])) { 
$name = $_POST['name'];
$post = $_POST['post'];
$link = $_POST['link']; 
echo $name; 
echo $post; 
echo $link; 
echo "all good";
} 
?>

<form name="upload" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
   Name:<br>
   <input type="text" name="name"><br>
   Post:<br>
   <input type="text" name="post"><br>
   Link:<br>
   <input type="text" name="link"><br>
   <input type="submit" name="submit" value="Submit Form"><br>
</form>

错误是“在此服务器上找不到请求的URL /&lt;”

我错过了什么?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

看起来您的表单操作无法正确解析。您的代码在我的服务器上运行正常 - 但是,每个服务器都不同。 您可以尝试在php部分中移动双引号,看看是否会以某种方式绊倒解析器:

更改

 <form name="upload" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">

<form name="upload" action=<?php echo "\"".htmlspecialchars($_SERVER['PHP_SELF'])."\""; ?> method="post">

或者

<form name="upload" action=<?php echo "'".htmlspecialchars($_SERVER['PHP_SELF'])."'"; ?> method="post">

理论上所有这些都应该导致同样的事情 - 但值得一试。