没有从表单提交的数据

时间:2016-07-21 04:52:03

标签: php html forms

我创建了一个只包含一个字段的简单HTML表单。当我按下提交时,我编写的一些PHP代码被调用并输出文本,如果一切正常,将包括提交的数据。但PHP没有提交任何提交的文本。该表单已在Godaddy HTML页面上创建,表单如下:

  <FORM BORDER="1" action="http://www.bestpro.com.au/wordpress/PHB_action.php"
    method="post" enctype="application/x-www-form-urlencoded"
    eenctype="multipart/form-data" name="PHBForm" accept-charset="ISO-8859-1"
    ienctype="text/plain">
      <TABLE>
        <TR>
          <TD>First name:</TD><TD><INPUT type="text" name="firstname" id="firstname"></TD>
          <TD></TD><TD></TD>
          <TD> </TD><TD> </TD>
        </TR>
        <TR>
          <TD> </TD><TD> </TD>
          <TD> </TD><TD></TD>
          <TD> </TD><TD><input type="submit" value="Submit"></TD>
      </TABLE>
    </FORM>

PHP代码输出如下所示:

   This is where we end up.



   Using `$_POST["firstname"]` which outputs nothing.
   Using `htmlspecialchars($_POST["firstname"])` which also outputs nothing.

问题: PHP输出不包括我在字段中输入的值。 谁能看到我做错了什么?

3 个答案:

答案 0 :(得分:0)

我认为这里没有任何错误,所以我只能假设您在 PHB_action.php 页面上输出它的方式有问题。

您说您已将$_POST['firstname']放在自己的网页上,但实际上是否已确保将echoprint添加到该页面?

你可以这样做:

echo $firstname = $_POST['firstname']; // notice the echo placed before

$firstname = $_POST['firstname'];
print("$firstname");

修改

我已经注意到,当您回显到您的信息页时,您已将帖子数据放在单引号内。

您必须连接数据,而不是在回显时将它们放在单引号内,如下所示:

echo 'Using' . $_POST['firstname']; // notice the dot in between the string and the post data. 

或者你没有正确地(或根本没有)将PHP安装到你的服务器上。

希望这有帮助

答案 1 :(得分:0)

所以,这是非常直接的,我已经写完了,并会解释每一位。

您需要的PHP是:

<?php
if (isset($_POST['send']))
{
    $fname = $_POST['firstName'];
    if (!empty($fname))
    {
        echo "hello $fname";
    } else {
        echo "Please supply your first name.";
    }
}
?>

$ _ POST ['send']是提交按钮的名称,这将是PHP启动并运行其余代码的触发器。

$fname = $_POST['firstName'] 这就是我喜欢将$ _POST存储为变量的地方,如果你再次使用它,它可以节省编写整个事情的时间。

if(!empty)

如果用户名不为空(!空意味着不为空),则执行$ fname的回显。但如果它返回为空,它将回显else echo "please supply...;

现在是表格。

<form action="" method="post">
    <table>
        <tr>
            <td>First Name:</td>
            <td><input type="text" name="firstName"></td>
        </tr>
        <tr>
            <td><input type="submit" name="send"></td>
        </tr>
    </table>
</form>

只是一个直接形式,我的空白操作(我更喜欢将PHP保存在同一个文件中,但我通常会将其转发回不同文件中的类。

每个表单输入(名字/提交)必须具有name =“”值,否则PHP无法读取它并随之运行。

我希望这是有道理的并且不会令人费解:)

答案 2 :(得分:-1)

您的输入字段应位于标记内,方法应该发布。像:

function try_insert($post_id, $post)
{
    // Pull in the global WPDB variable WordPress creates
    global $wpdb;

    $test02 = 333243;
    $test03 = 222;

    /*
     * Insert record into the table "post_data02" with the values:
     *   "post_id" => The ID in $post_id passed by WordPress,
     *   "condition_code" => The number in $test03 (currently 222)
    */
    $insert = $wpdb->insert( 'post_data02',
        [ 'post_id' => $post_id, 'condition_code' => $test03 ],
        [ '%d',                  '%d' ]
    );

    if( $insert !== false ) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $link -> error;
    }

}
add_action( 'publish_post', 'try_insert', 10, 2);