我正在用PHP创建一个简单的注册表单程序,该程序基本上从表单读取输入并将其发送到数据库。我在从数据表单读取数据时遇到了一些问题:
这是具有以下形式的CSS部分:
<form class="signup-form" action="include/signup.inc.php" method="POST">
<input type="text" name="first" placeholder="Firstname">
<input type="text" name="last" placeholder="Lastname">
<input type="text" name="email" placeholder="E-Mail">
<input type="text" name="uid" placeholder="Username">
<input type="password" name="pwd" placeholder="Password">
<button type="submit" name="submit">Sign Up</button>
</form>
这是应该从我的数据库发送所有内容的部分:
<?php
if (isset($_POST['submit'])) {
include_once 'dbh.inc.php';
$first = mysqli_real_escape_string($conn, $_POST['first']);
$last = mysqli_real_escape_string($conn, $_POST['last']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
//Error handlers
//Check for empty fields
if (empty($first) || empty($last) || empty($email) || empty($uid) || ($pwd)) {
//header("Location: ../signup.php?signup=empty");
echo "empty";
exit();
} else {
//Other conditions...
基本上,第一个条件应检查用户是否要输入空字段。如果字段为空,则将页面重定向到../signup.php?signup=empty
(“ echo empty”行仅用于调试目的)。问题在于,即使我填写了所有字段,它也会始终检测到一个空字段,就好像脚本在从表单读取数据时遇到了问题。我希望我的解释很清楚,每一个建议都非常欢迎!
答案 0 :(得分:1)
编辑:有人指出您忘记了empty()
周围的$pwd
。可能也是问题所在。
您是否尝试打印出$first
或其他变量?我怀疑mysqli_real_escape_string
返回null
,这就是为什么if语句说它们为空。
我还会检查$_POST['form_item']
,其中'form_item'
是您的每个输入,只是看它们是否被正确发送。
但是,就像我说的那样,我怀疑真正的转义字符串函数正在返回null
。看看documentation是不是正在发生。