【问题标题】:How to properly pass form data in php?如何在php中正确传递表单数据?
【发布时间】:2012-01-15 16:57:01
【问题描述】:

我正在使用php构建一个需要传递2个变量进行处理的小表单。

我从 w3schools 获得了示例,虽然信息通过 URL 传递,但 php 表单不会以任何方式处理它(更不用说提取它了)。

我只是想知道我的 WAMP 服务器是否有问题。

    <html>
    <body>
    welcome
    Welcome <?php echo $_GET["fname"]; ?>.<br />
     You are <?php echo $_GET["age"]; ?> years old!
    </body>
    </html> 

HTML 表单:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://        www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;                 charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>

    <body>
    <form action="welcome.php" method="get">
     Name: <input type="text" name="fname" />
     Age: <input type="text" name="age" />
     <input type="submit" />
     </form>
    </body>
    </html>

【问题讨论】:

  • 你能确定error_reporting = E_ALLdisplay_errors = 1 在你的php.ini 中吗?在问题中添加您收到的任何错误。
  • 不处理是什么意思?你没有得到一个至少有那些“欢迎”字眼的 html 吗?然后问题在于处理php文件的路径。检查是否与表单html文件在同一目录下。
  • 当表单重定向到welcome.php 时到底发生了什么?在这种情况下,你能发布welcome.php的确切输出吗?
  • 它将我重定向到正确的页面,并且 php 打印出它应该打印的内容,只有变量是完全空的。

标签: php html post get wamp


【解决方案1】:

确实,正如各种帖子已经指出的那样,这段代码应该可以工作。 根据我的经验,如果未解析 php 标签,则会直接输出它们。 你在页面上看到什么了吗?您还可以检查页面的源代码,并检查您是否可以在其中发现任何错误。

此外,当从 Internet 上的示例中复制时,有时您会得到奇怪的字符来中断解析器。通常这会导致错误(这里不是这种情况),但检查并没有什么坏处。

尝试输出一些简单的东西,看看是否可行:

<?php echo "Hello World"; ?>

暂时想不到别的了……

【讨论】:

  • 好吧,我在 XAMP 设置上测试了您的代码,它运行良好。也许track_vars 没有设置?尝试用 POST 来做,看看它是否改变了什么?
  • 确保您是通过服务器而不是直接查看页面,如果您的 URL 看起来像 file://path/to/file.php,那么这是错误的。您必须启动服务器,然后使用http://localhost/file.php 访问它。 Tutorial (start with step 16)
【解决方案2】:

这在代码方面应该可以正常工作。你把php文件保存在'welcome.php'所在的目录了吗?

【讨论】:

  • 是的。即使在 html 中编写 php 脚本不起作用。简单的 php print("WELCOME") ?> 不工作。
【解决方案3】:

您的代码似乎正确。 PHP 可以工作吗?有没有

echo phpinfo();

工作?如果是,是什么

var_dump($_SERVER); 

给你? GET参数是否出现在那里?

【讨论】:

  • 那么 PHP 不行了?如果是这样,您确实应该调查您的服务器设置!
【解决方案4】:

只需添加&lt;?php echo phpinfo(); ?&gt;,然后再次运行您的页面,例如页面http://localhost/yourpage.php,现在只需查看是否设置了error_reporting = E_ALL和display_errors = 1,如果没有,则您必须配置您的php.ini,

【讨论】:

  • file://localhost/C:/wamp/www/new.php 我已经添加,结果是 php 回显 phpinfo(); ?>
  • @Eugen :) 你为什么要在
【解决方案5】:

如果您可以查看 url 中的值但仍然无法获取它,请检查 URL,然后尝试var_dump($_REQUEST);,我的建议是尝试在同一页面中提交表单,因为当我更新鲜时,我将两个代码都写在同一页面中但是操作页面不同,所以我很困惑为什么它不起作用

【讨论】:

    【解决方案6】:

    据我所知,这个脚本应该可以工作。你的 WAMP 设置是什么?

    尝试将脚本上传到使用 php 的免费服务器上并在那里运行。

    【讨论】:

    • 为什么需要 session_start 来处理表单提交?
    • 什么设置?我使用 wamp 2.2。
    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2011-05-24
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    相关资源
    最近更新 更多