TheBigBearNow Ответов: 0

Php create не вставляя в БД и проверяя существует ли он


Привет всем, у меня есть еще один проект, я работаю над логином php, и я вставляю запись в БД, я проверяю таблицу, чтобы увидеть, существует ли она или нет, так что не может быть 2 пользователей с одним и тем же именем пользователя, но я работаю с create the form submits, но ничего не вставляется. Также ценю предложения в коде, чтобы сделать мой php лучше.

<?php
    //mySQL database config
require_once "config.php";

// Define all variables and initialize them as 'empty'
$name = $username = $password = $password2 = "";
$nameerror = $usernameerror = $passworderror = $password2error = "";

// Process data when the form is submitted.
if($_SERVER["REQUEST_METHOD"] == "POST") {

    //Name check
    if(empty(trim($_POST["name"]))) {
        $nameerror = "Please enter a name.";
    } else {
        $name = trim($_POST["name"]);
    }
    // Validate 'Username'
    if(empty(trim($_POST["username"]))) {
        $usernameerror = "Please enter a Username.";
    } else {
        // Prepare a SELECT statement.
        $sql = "SELECT userid FROM users WHERE username = :username";

        if($stmt = $pdoConn->prepare($sql)) {
            // Bind variables to prepared statement as parameters
            $stmt->bindParam(":username", $param_username, PDO::PARAM_STR);
            // Set parameters
            $param_username = trim($_POST["username"]);
            // Attempt to execute prepared statement
            if($stmt->execute()) {
                if($stmt->rowCount() == 1) {
                    $usernameerror = "Username is already taken.";
                } else {
                    $username = trim($_POST["username"]);
                }
            } else {
                echo "Something went wrong with SELECT, please try again later.";
            }
        }
        // Close $stmt
        unset($stmt);
    }
    // Validate Password
    if(empty(trim($_POST["password"]))) {
        $passworderror = "Please enter a password.";
    } else if (strlen(trim($_POST["password"])) < 6) {
        $passworderror = "Password must have at least 6 characters.";
    } else {
        $password = trim($_POST["password"]);
    }
    // Validate Confirm Password.
    if(empty(trim($_POST["password2"]))) {
        $password2error = "Please confirm your password";
    } else {
        $pass2 = trim($_POST["password2"]);
        if(empty($password2error) && ($password != $pass2)) {
            $password2error = "Passwords DID NOT match.";
        }
    }
    //Check for inputs on form to continue.
    // Error checks or input checks.
    if(empty($name) && empty($username) && empty($password) && empty($password2)) {
        // Prepare SELECT statement
        $sql = "INSERT INTO  users (name, username, password) " .
               "VALUES (:name, :username, :password)";
        if($stmt = $pdoConn->prepare($sql)) {
            // Bind variables to prepared statement as parameters
            $stmt->bindParam(":name", $param_name, PDO::PARAM_STR);
            $stmt->bindParam(":username", $param_username, PDO::PARAM_STR);
            $stmt->bindParam(":password", $param_pass, PDO::PARAM_STR);
            // Set parameters
            $para_name = $name;
            $param_username = $username;
            $param_pass = password_hash($password, PASSWORD_DEFAULT);
            // attempt to execute the prepared Statement
            if($stmt->execute()){
                header("Location: ../index.php");
            } else {
                echo "Something went wrong with INSERT";
            }

        }
        // Close Statement
        unset($stmt);
    }
    // Close connection
    unset($pdoConn);
}


?>


Что я уже пробовал:

У меня есть проект php login с crud и он работает в моем другом проекте но я пытаюсь сделать что то немного другое здесь используя подготовленный оператор и я не уверен почему я не могу получить свою запись для вставки в БД здесь

ZurdoDev

В чем заключается ваш вопрос?

TheBigBearNow

Мой проект действительно создает чтение и удаление, но когда я делаю обновление, я не получаю обновления. Он обновляет страницу и не обновляется и не переходит в заголовок()

Richard Deeming

В коде, который вы показали, нет ничего, что могло бы выполнить UPDATE запрос.

Ваш INSERT выглядит неправильно - вы выполняете его только в том случае, если все значения, которые вы собираетесь вставить, пусты.

0 Ответов