Запуск PHP в HTML ошибка (эта страница не работает) - PullRequest
0 голосов
/ 13 июня 2019

Я установил эту регистрационную форму для своего сайта. Люди вводят свое имя пользователя, адрес электронной почты и пароль, а затем он использует php, чтобы добавить его в мою базу данных. Но я продолжаю получать эту ошибку, когда я запускаю свой код. Мой HTML-файл находится на моем сервере AWS, а также этот файл PHP, поэтому я считаю, что в моем коде должна быть ошибка. Я все еще очень плохо знаком с PHP.

HTML:

<form method="get" action="signup_form.php">
    <input style="width: 300px; display: block; margin-left: auto; margin-right: auto;" type="text" name="signup_name" placeholder="Screen Name">
    <br>
    <input style="width: 300px; display: block; margin-left: auto; margin-right: auto;" type="text" name="signup_mail" placeholder="Your E-mail">
    <br>
    <input style="width: 300px; display: block; margin-left: auto; margin-right: auto;" type="password" name="signup_password" id = "password" placeholder="Create Password" required>
    <br>
    <input style="width: 300px; display: block; margin-left: auto; margin-right: auto;" type="password" name="confirm_password" id = "confirm_password" placeholder="Repeat Password" required>
    <br>
    <br>
    <button onclick="validatePassword()" class="button" style="display: block; margin-left: auto; margin-right: auto;" type="submit" name="submit_login">
        SUBMIT
    </button>


</form>

и вот мой PHP-код:

<?php
$signup_name = filter_input(INPUT_GET, 'signup_name');
$signup_mail = filter_input(INPUT_GET, 'signup_mail');
$signup_password = filter_input(INPUT_GET, 'signup_password');

if (!empty($signup_name)){
if (!empty($signup_mail)){
    $host = "wildwea.......onaws.com";
    $dbusername = "a....in";
    $dbpassword = ".Bi....4.";
    $dbname = "innodb";
 // Create connection
    $conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);
    if (mysqli_connect_error()){
        die('Connect Error ('. mysqli_connect_errno() .') '
            . mysqli_connect_error());
    }
    else{

        $sql = "SELECT EXISTS (SELECT 1 FROM Users WHERE Email = $signup_mail);"
        if ($sql = 0){

            $sql = "INSERT INTO Users (Username, Email, Pword)
            values ('$signup_name', '$signup_mail',md5('$signup_password'))";

            if ($conn->query($sql)){
                echo "New record is inserted sucessfully";
            }
            else{
                echo "Error: ". $sql ."
                ". $conn->error;
            }
            $conn->close();
        } else {
            echo "User already in database";
        }
    }
}
else{
    echo "Password should not be empty";
    die();
}
}
else{
    echo "Username should not be empty";
    die();
}
?>

Если вы хотите увидеть ошибку, вот ссылка на страницу регистрации: http://thewildwear.com/signup.html

1 Ответ

1 голос
/ 13 июня 2019

Мы не можем увидеть вашу конкретную ошибку (похоже, их может быть несколько), поэтому мы не сможем вам там помочь. Но я мог бы сделать предложение о том, как структурировать ваш сценарий.

Предостережение - это действительно не хороший подход ни для чего, кроме самых маленьких приложений или для обучения.

Основная идея состоит в том, что существует только 1 скрипт, и он имеет обработки и отображения секций. Он войдет в раздел processing только тогда, когда форма действительно отправлена.

Если есть какие-либо ошибки проверки, они перейдут в раздел display и перечислят ошибки и форму.

Если нет ошибок проверки, он будет сохранен в БД и перенаправлен на другую страницу.

По мере разработки больших (и лучших) приложений вы можете обнаружить, что этот тип кодирования быстро станет громоздким - вы смешиваете валидацию, SQL, представления / отображение и т. Д. В одном скрипте. Они станут более сложными, и вскоре у вас будет большой шар спагетти. Как только вы достигнете этой точки, начните изучать рамки

Но пока продолжайте. Удачи.

<?php

// A list of validation errors. Initialize to an empty list.
$errors = [];

/****************************/
/******** PROCESSING ********/
/****************************/
// The form was submitted
if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    // Values submitted from form
    $name = $_POST['signup_name'];
    $email = $_POST['signup_mail'];
    $password = $_POST['signup_password'];

    // Validation
    if (empty($name)) {
        $errors[] = 'Please enter your name';
    }

    if (empty($email)) {
        $errors[] = 'Please enter your email';
    }

    // ... check if email already exists in your DB.

    // ... more validation here

    // There are no validation errors, process the form.
    if (empty($errors)) {
        // At this point, you now have a valid form. Just save it to the DB.

        // Redirect to somewhere
    }
}

/****************************/
/********** DISPLAY *********/
/****************************/
if (count($errors) > 0) : ?>
    <ul>
        <?php foreach ($errors as $error): ?>
            <li><?php echo $error; ?></li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

<!-- Use "post" and remove action and it will post to itself. -->
<form method="post">
    <!-- ... -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...