无法在php中将数据从用户窗体发送到数据库

yqlxgs2m  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(236)

我正在用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”行仅用于调试目的)。问题是它总是会检测到一个空字段,即使我填充了所有字段,就好像脚本在从表单读取数据时遇到了问题一样。我希望我的解释清楚,每一个建议都非常欢迎!

des4xlb0

des4xlb01#

编辑:有人指出你忘了 empty() 周围 $pwd . 这也可能是问题所在。
你试过打印出什么吗 $first 或者你的其他变量是?我怀疑 mysqli_real_escape_string 他回来了 null 这就是为什么你的if语句说它们是空的。
我也会查一下 $_POST['form_item'] ,在哪里 'form_item' 是你的每一个输入,只是看看它们是否被正确发送。
但就像我说的,我怀疑返回的是真正的转义字符串函数 null . 如果是这样的话,请查看文档。

相关问题