无法从我的注册表创建新用户到数据库

hpxqektj  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(471)

这个问题在这里已经有答案了

如何显示mysqli查询的错误[重复](2个答案)
引用-这个错误在php中是什么意思(36个答案)
两年前关门了。
我试图让我的注册表工作到我的数据库,但由于某种原因,当我做了一个测试注册没有在我的数据库中创建任何人知道问题是什么?我想这和所有人都有关系

mysqli_stmt

我认为他们中没有人工作正常。
我有第二个文件,是连接到我的数据库,它似乎连接正确,所以不知道是什么问题。
我的php代码在这里

if (isset($_POST['signup-sub'])) {

    //hämtar databash.php
    require 'databash.php';

    // variabler som tar värderna ifrån inputs på signup.php
    $username = $_POST['nameid'];
    $email = $_POST["mail"];
    $password = $_POST['pwd'];
    $passwordRepeat = $_POST['pwd-repeat'];

    // ifstatement som kollar om någon rad inte är ifylld. om inte så skrivs det ut i länken att det finns tommatext rutor
    if (empty($username) || empty($password) || empty($passwordRepeat)) {
        header("Location: signup.php?error=tommatextrutor&nameid=".$username."&mail=".$email);
        //stoppar skripten om någon skrit in felaktig inmatning
        exit(); 
    } 
    elseif (!filter_var($email, FILTER_VALIDATE_EMAIL) && !preg_match("/^[a-zA-Z0-9]*$/", $username)) {
        header("Location: ../signup.php?error=invalidmailname");
        //stoppar skripten om någon skrit in felaktig inmatning
        exit();
    }   
    // else if som kollar om emailaddresen som är inskriven är felaktig och i så fall lägger ut i länken att det är något fel med emailen.
    elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        header("Location: ../signup.php?error=invalidmail&name=".$username);
        //stoppar skripten om någon skrit in felaktig inmatning
        exit();
    }
    elseif (!preg_match("/^[a-zA-Z0-9]*$/", $username)) {
        header("Location: ../signup.php?error=invalidnameid&mail=".$email);
        exit();
    }
    elseif ($password !== $passwordRepeat) {
        header("location: ../signup.php?error=passwordwrong&nameid=".$username."&mail=".$email);
        //stoppar skripten om någon skrit in felaktig inmatning
        exit();
    }
    // kollar om det redan finns en användare med detta användarnamnet
    else {

        $sql = "SELECT uidUsers FROM USERS WHERE uidUsers=?";

        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: ../signup.php?error=sqlerror");
            exit();
        } else {
            mysqli_stmt_bind_param($stmt, "s", $username);
            mysqli_stmt_execute($stmt);
            mysqli_stmt_store_result($stmt);
            $resultCheck = mysqli_stmt_num_rows($stmt);
            if ($resultCheck > 0) {
                header("Location: ../signup.php?errornamntaget&mail=".$email);
                exit();
            } else {
                $sql = "INSERT INTO USERS (uidUsers, emailUsers, pwdUsers) VALUES (?, ?, ?)";
                $stmt = mysqli_stmt_init($conn);

                if (!mysqli_stmt_prepare($stmt, $sql)) {
                    header("Location: ../signup.php?error=sqlerror");
                    exit();
                } else {
                    $hashedPwd = password_hash($password, PASSWORD_DEFUALT);

                    mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd);
                    mysqli_stmt_execute($stmt);

                    header("Location: signup.php?registrering=klar");
                    exit();
                }
            }
        }
    }

    mysqli_stmt_close($stmt);
    mysqli_close($conn);
}
else {
    header("Location: signup.php");
    exit();
}
iszxjhcz

iszxjhcz1#

这不是答案,而是帮助您测试代码的方法。把你的每一句话都说出来 header("location: ..") 并添加 echo "error 1"; (和2、3等)在他们的位置。然后运行代码。当代码返回错误时,您将能够确定是哪个部分产生了问题。解决第一个错误,再次运行代码(测试),修复下一个错误。冲洗并重复。

相关问题