PHP用户通过HTML标签输入

时间:2014-08-18 14:27:02

标签: php

我刚开始学习PHP,youtube上的视频教程和内容,我无法弄清楚为什么以下不起作用。

我有两个文件,一个index.php,另一个secondpage.php

index.php

的内容
<html>
<head>
    <title>Hello World</title>
</head>
<body>
    <form action="secondpage.php">
        <input name="name" type="text">
        <input type="submit">
    </form>
</body>
</html>

secondpage.php

的内容
<html>
    <head>
        <title>Second page</title>
    </head>
    <body>
        <?php 
            echo $name;
        ?>
    </body>
</html>

我希望在第一页上点击提交只会输出我在输入框中输入的任何文字,但我只是得到一个空白页面。为什么呢?

4 个答案:

答案 0 :(得分:4)

您需要先获得该值。此外,您需要在表单标记中使用正确的方法。

如果未定义方法,则

<form>默认为GET,因此使用method="post"

HTML:

<form action="secondpage.php" method="post"> 

PHP:

<?php 
$name = $_POST['name'];
            echo $name;
        ?>

那就行了。

编辑:不是故意这个答案。在编写它的时候,就像有4条评论说同样的事情。

答案 1 :(得分:2)

因为单击“提交”时未设置$ name。

要访问输入,您必须向表单添加方法(POST)。

<form action="secondpage.php" method="post"> 

而不是在第二页上访问你的输入:

    <?php 
        echo $_POST['name'];
    ?>

提示:启用错误报告:

error_reporting(-1);

答案 2 :(得分:1)

你看,当你省略表单方法时,它默认为GET ,因为你没有告诉PHP如何检索变量,它没有& #39;知道如何处理它。

如果错误报告已开启,则很可能会抛出一个 Notice: Undefined variable: name in...(path to file) on line X错误消息。
请参阅下面有关错误报告的说明。

如果你完成echo $_GET['name'];它就会有用。

或者

$name = $_GET['name'];
echo $name;

但是,如果您明确使用&#34;帖子&#34;表单方法,然后您必须将其包含在表单中。

即:method="post"

然后使用echo $_POST['name'];

$name = $_POST['name'];
echo $name;

然而 ,使用isset()将是一个额外的变量处理函数。


错误报告:

此外,在编写代码以查找发现的错误时,错误报告很重要;如果有的话。


<强> 脚/旁注:

如果省略该方法并且GET是您想要使用的,那么这是完全可以接受的。否则,请使用POST方法以及所示的示例。

有关表格的更多信息,请访问PHP.net的网站:


您还应该了解(XSS)跨站点脚本。

以下是一些可供阅读的链接:

您可以使用&#34; XSS注入php&#34;进一步研究。 (和/或在您最喜爱的搜索引擎中添加&#34;表示$ _GET和$ _POST&#34;)作为关键字。

答案 3 :(得分:0)

使用secondpage.php作为

<html>
 <head>
    <title>Second page</title>
</head>
  <body>
    <?php 
        echo $_POST['name'];
    ?>
  </body>
</html>