【发布时间】:2016-05-29 05:52:51
【问题描述】:
问题:
表单提交后未定义的 POST 变量。
研究和故障排除完成:
- 在这里阅读大量问题,几乎所有问题都与表单字段上没有名称标签有关。我的所有字段都有标签和 ID。
- 将我的 PHP.ini 配置为将 $HTTP_RAW_POST_DATA 设置为 -1
- PHP.net 和 W3Schools 的后续教程
此时我迷路了。数据只是拒绝发布,一切都未定义。下面是显示问题的 HTML、PHP 和两个屏幕截图。
我在 Windows 上使用 PHPStorm 的内置服务器。
signup.html
<div class="text-center col-md-4 col-md-offset-4">
<form id="user_signup" class="form-horizontal signInFields" action="../php/register.php" method="POST">
<input type="text" id="first_name" name="first_name" placeholder="First Name">
<input type="text" id="last_name" name="last_name" placeholder="Last Name">
<input type="email" id="user_email" name="user_email" placeholder="Email">
<input type="text" id="user_id" name="user_id" placeholder="User ID">
<input type="password" id="user_password" name="user_password" placeholder="Password">
<input type="password" id="confirm_password" name="confirm_password" placeholder="Confirm Password">
<button id="btn_signup" type="submit" name="signup_button">Sign Me Up!</button>
</form>
register.php
// Variables from the sign-up form POST action
$first_name = $_POST["first_name"];
$last_name = $_POST["last_name"];
$user_email = $_POST["user_email"];
$user_id = $_POST["user_id"];
$user_password = $_POST["user_password"];
$confirm_password = $_POST["confirm_password"];
// Add a new user to the database
$conn = new mysqli($servername, $username, $password);
$testQuery = mysql_insert($first_name,$last_name,$user_email,$user_id,$user_password);
if($conn->query($testQuery) === TRUE){
echo "New Record Created Successfully!";
} else {
echo "Error: " . $testQuery . "<br>" . $conn->error;
}
$conn->close();
在这一点上,我感到困惑。据我从 W3Schools、PHP.net 和这里的各种问题中得知,我已经正确设置了它。然而,事情显然是不对的。任何和所有的帮助将不胜感激。
【问题讨论】:
-
旁注:确保您使用的是 PDO 而不是
mysql_query()wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers -
@Orions 请求方法检查确实会在仅添加该检查并且什么都不做之后返回 POST。