【问题标题】:PHP, issues with POSTPHP,POST的问题
【发布时间】:2016-10-23 00:59:57
【问题描述】:

我目前在让我的 POST 请求显示所需内容(即回显用户输入)时遇到问题。我使用 PhpStorm 作为我的 IDE,并使用 Windows 安装程序中的 XAMPP 作为我的堆栈。

用户提交表单如下所示,它是一个.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>

但是,我收到未定义的索引错误。同样的问题发生在我使用 MAMP 堆栈的 Mac 上。 $_GET 工作正常,但是,根据良好做法,您不想在处理表单时使用 GET。

如何修复它以使其输出“Welcome $UserInputHere”?

【问题讨论】:

  • 使用这个确切的脚本,它对我有用。是否正在发送标头?
  • 尝试"&lt;pre&gt;",print_r($_POST),"&lt;pre&gt;"; - 这将显示POST 数组及其所有内容,如果数组中没有内容,您将开始知道哪里出错了这是发送操作的问题。确保您不只是打开页面而不单击表单上的提交。 :)
  • 做进一步的研究,好像 phpstorms 内置在 web 服务器上,自从 get 工作以来,post 有问题。因此,作为后续,我想知道你们中是否有人知道如何让 phpstorm 使用自己的 apache 服务器。我为我的 Mac 下载了 MAMP 堆栈,当然还为 Windows 下载了 XAMPP。
  • 该命令的结果也是:数组 ( )。所以 POST 似乎什么也没发送。
  • 要非常小心...在 HTML 上下文中使用的任意数据周围使用htmlspecialchars()(例如您的$_POST['name'])。否则,您将面临在页面中注入代码的风险。

标签: php


【解决方案1】:

所以我找到了解决方案。这当然是在我的 Windows 机器上,但我想类似的事情也适用于 Mac。转到 xampp 文件夹,找到 httpdocs 文件夹,然后在那里完成您的工作。

之后,打开服务器,应该可以通过localhost正常访问了。意思是,你仍然可以使用 phpstorm 作为你的 ide,但绕过它的内置服务器,它有 post 问题。

【讨论】:

    【解决方案2】:

    这不是解决方案。我使用 PHPStorm 和 XAMPP 以及 webroot 文件夹位于默认 PHPStorm 项目位置(只需要修改 VirtualHost 条目 DocumentRoot),我的请求响应工作正常。

    这可能是您之前的@​​987654321@ 中最有可能的一个微不足道的错误配置

    编辑: 要设置您的虚拟主机,请执行以下操作:

    • 输入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(或在旧版本的 apache 中为 Allow from all)。就是这样。

    【讨论】:

    • 也许,我是个新手,就设置而言,我们的教授向我们展示了 0 件事。我尝试让 phpstorm 通过服务器,但它一直失败。尝试了 youtube 视频等,除此之外没有任何效果。如果你能告诉我怎么做,那就太好了。
    • 添加了一些关于如何设置虚拟主机的信息
    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2014-03-17
    • 2012-10-16
    • 2023-03-12
    相关资源
    最近更新 更多