将表单数据发送到不起作用的同一页面

时间:2016-12-16 11:15:03

标签: php

我是PHP的新手,我想从表单发送数据并将其显示在同一页面中,这是我的代码以便更好地理解:

<form method="post" action="same_page.php">
<input type="text" name="owner" />
<input type="submit" value="Validate" />
</form>

<?php
if(isset($_GET['owner']))
{
   echo "data sent !";
}

?>

通常情况下,在表单中输入一些随机文字后点击&#34; 验证&#34;,邮件&#34; 数据已发送! &#34;应该显示在页面上。我想我错过了什么,但我无法弄清楚是什么。

4 个答案:

答案 0 :(得分:0)

替换:

$_GET['owner']

使用:

$_POST['owner']

由于您在表单中使用post方法,因此必须检查PHP代码中的$_POST数组。

答案 1 :(得分:0)

您在表单中使用POST方法。

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

因此,请将您的代码更改为:

if (count($_POST) && isset($_POST['owner']))

从技术上讲,上面的代码执行以下操作:

  1. 首先检查POST中是否有内容。
  2. 然后,它会检查owner是否已设置。
  3. 如果两个条件都满足,则显示消息。
  4. 您实际上可以摆脱action="same_page.php",就像省略它一样,您将发布到同一页面。

    注意:这是一种最糟糕的编程方法,需要更改。

答案 2 :(得分:0)

您应该使用$ _POST ['owner']替换$ _GET ['owner'],如您指定的方法='post'

答案 3 :(得分:0)

您忘记在表单中添加提交名称。您使用POST作为方法,因此代码应为

 <form method="post" action="">
    <input type="text" name="owner" />
    <input type="submit" name="submit_value" value="Validate" />
    </form>

<?php
if(isset($_POST['submit_value']))
{
   echo '<pre>';
 print_r($_POST);
}

?>

将显示您的帖子值