我创建了一个只包含一个字段的简单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输出不包括我在字段中输入的值。 谁能看到我做错了什么?
答案 0 :(得分:0)
我认为这里没有任何错误,所以我只能假设您在 PHB_action.php 页面上输出它的方式有问题。
您说您已将$_POST['firstname']
放在自己的网页上,但实际上是否已确保将echo
或print
添加到该页面?
你可以这样做:
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);