Проверьте данные от Mysql и php - PullRequest
0 голосов
/ 04 апреля 2020

Я делаю регистрационную форму на моем сайте в PHP. У меня только один вопрос: почему в моей форме с этим кодом сервер не контролирует, если restaurant_name уже существует. Я попытался добавить пользователя с таким же именем restaurant_name другого пользователя, и это работает. но у меня есть подобный код для имени пользователя, и это работает правильно.

 // Validate restaurant_name
    if(empty(trim($_POST["restaurant_name"]))){
        $restaurant_name_err = "Inserisci il nome del ristorante.";
    } else{
        // Prepare a select statement
        $sql = "SELECT restaurant_name FROM vm_users WHERE username = ?";

        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "s", $param_restaurant_name);

            // Set parameters
            $param_restaurant_name = trim($_POST["restaurant_name"]);

            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                /* store result */
                mysqli_stmt_store_result($stmt);

                if(mysqli_stmt_num_rows($stmt) == 1){
                    $restaurant_name_err = "Il ristorante è già registrato.";
                } else{
                     $restaurant_name = trim($_POST["restaurant_name"]);
                }


            } else{
                echo "Oops! Something went wrong. Please try again later.";
            }

            // Close statement
            mysqli_stmt_close($stmt);
        }
    }

это код для управляющего имени пользователя и это право на работу.

 // Validate username
    if(empty(trim($_POST["username"]))){
        $username_err = "Please enter a username.";
    } else{
        // Prepare a select statement
        $sql = "SELECT id_user FROM vm_users WHERE username = ?";

        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "s", $param_username);

            // Set parameters
            $param_username = trim($_POST["username"]);

            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                /* store result */
                mysqli_stmt_store_result($stmt);

                if(mysqli_stmt_num_rows($stmt) == 1){
                    $username_err = "This username is already taken.";
                } else{
                    $username = trim($_POST["username"]);
                }
            } else{
                echo "Oops! Something went wrong. Please try again later.";
            }

            // Close statement
            mysqli_stmt_close($stmt);
        }
    }

и это html код моей страницы

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sign Up</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        body{ font: 14px sans-serif; }
        .wrapper{ width: 350px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <h2>Sign Up</h2>
        <p>Please fill this form to create an account.</p>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
                <label>Username</label>
                <input type="email" name="username" class="form-control" value="<?php echo $username; ?>" require>
                <span class="help-block"><?php echo $username_err; ?></span>
            </div>    
            <div class="form-group <?php echo (!empty($restaurant_name_err)) ? 'has-error' : ''; ?>">
                <label>Nome del ristorante</label>
                <input type="text" name="restaurant_name" class="form-control" value="<?php echo $username; ?>">
                <span class="help-block"><?php echo $restaurant_name_err; ?></span>
            </div>   
            <div class="form-group <?php echo (!empty($restaurant_phone_err)) ? 'has-error' : ''; ?>">
                <label>Numero di telefono</label>
                <input type="number" name="restaurant_phone" class="form-control" value="<?php echo $username; ?>">
                <span class="help-block"><?php echo $restaurant_phone_err; ?></span>
            </div>   
            <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
                <label>Password</label>
                <input type="password" name="password" class="form-control" value="<?php echo $password; ?>">
                <span class="help-block"><?php echo $password_err; ?></span>
            </div>
            <div class="form-group <?php echo (!empty($confirm_password_err)) ? 'has-error' : ''; ?>">
                <label>Confirm Password</label>
                <input type="password" name="confirm_password" class="form-control" value="<?php echo $confirm_password; ?>">
                <span class="help-block"><?php echo $confirm_password_err; ?></span>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Submit">
                <input type="reset" class="btn btn-default" value="Reset">
            </div>
            <p>Already have an account? <a href="login.php">Login here</a>.</p>
        </form>
    </div>    
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...