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

时间:2018-12-13 17:57:17

标签: php mysql database phpmyadmin

我正在尝试使我的注册表格适用于我的数据库,但是由于某种原因,当我进行测试注册时,数据库中什么也没有创建,有人知道这是什么问题吗?我认为这必须与所有人共同做某事

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();
}

1 个答案:

答案 0 :(得分:-1)

这不是答案,而是帮助您测试代码的方法。注释掉您的每个header("location: .."),并在其位置添加echo "error 1";(以及2、3等)。然后运行您的代码。当代码返回错误时,您将能够确定造成问题的原因。解决第一个错误,再次运行代码(对其进行测试),修复下一个错误。冲洗并重复。