我刚刚在新的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;”
我错过了什么?
非常感谢您的帮助!
答案 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">
理论上所有这些都应该导致同样的事情 - 但值得一试。