我目前有一个问题,让我的POST请求显示所需的内容,即回显用户输入。我使用PhpStorm作为我的IDE和XAMPP,来自Windows的安装程序,作为我的堆栈。
用户提交表单看起来如下,它是一个.php文件。
<form method="post" action="matches-submit.php">
<fieldset>
<legend>Returning User:</legend>
<ul>
<li><label><strong>Name:</strong></label>
<input id="name" name="name" type="text" size="16">
</li>
<li>
<input id="submit" name="submit" type="submit" value="Sign Up">
</li>
</ul>
</fieldset>
</form>
处理这个提交的表单如下所示:
<html>
<body>
Welcome
<?php
echo $_POST["name"];
?>
</body>
</html>
然而,我得到一个未定义的索引错误。同样的问题发生在我的mac上,我使用MAMP堆栈代替。$_GET
工作得很好,但是,根据良好的实践,您不希望在处理表单时使用GET。
我如何修复它,使它将输出"欢迎$UserInputHere"?
所以我找到了一个解决方案。这当然是在我的Windows电脑上,但我想类似的事情也适用于mac电脑。转到xampp文件夹,找到httpdocs文件夹,并在那里进行工作。
之后,打开服务器,您应该能够通过localhost正常访问它。意思是,你仍然可以使用phpstorm作为你的ide,但绕过它的内置服务器,这是有问题的post。
这不是解决办法。我使用PHPStorm和XAMPP与webroot文件夹位于默认的PHPStorm项目位置(所有需要的是修改VirtualHost条目,DocumentRoot),我的请求响应工作正常。
这可能是一个微不足道的错误配置最有可能在你以前的.htaccess
编辑:要设置虚拟主机,请执行以下操作:
- 输入
C:'xampp'apache'conf'extra
,编辑http-vhosts.conf
,添加:
<VirtualHost *:80>
ServerName localhost
DocumentRoot C:'Users'YOUR_PHPSTORM_PROJECT_FOLDER
</VirtualHost>
-
编辑
C:'system32'drivers'etc'hosts
如果您选择的服务器名称不是localhost,则添加以下条目:127.0.0.1 arbitraryservername
-
重启XAMPP
如果你得到HTTP 403,你可能需要添加Require all granted
(或Allow from all
在旧版本的apache)的web服务器根目录。就是这样。