Моя система регистрации php не будет подключаться к моей локально размещенной базе данных phpmyadmin, хотя я проверял орфографические ошибки и все кажется, что она должна работать. Заголовок не изменится, даже если он указан в скрипте регистрации PHP. Ничто не переносится в мою базу данных (у которой нет ошибок). Если бы кто-нибудь мог сказать мне, что я делаю неправильно, это было бы здорово. (PS footer.php и header.php верны и включены в форму)
Подпишите обработчики ошибок и запишите скрипт:
<?php if (isset($_POST['submit'])) { include_once 'dbh.inc.php'; $first = mysqli_real_escape_string($conn, $_POST)$_POST['first']; $last = mysqli_real_escape_string($conn, $_POST)$_POST['last']; $email = mysqli_real_escape_string($conn, $_POST)$_POST['email']; $username = mysqli_real_escape_string($conn, $_POST)$_POST['username']; $password = mysqli_real_escape_string($conn, $_POST)$_POST['password']; //Error handlers //Check for empty fields if (empty($first)) || (empty($last)) || (empty($email)) || (empty($username)) || (empty($password)) { header("Location: ../signup.php?signup=empty"); exit(); } else { //Check is input characters are valid if (!preg_match("/^[a-zA-Z]*$/", $first) || (!preg_match("/^[a-zA- Z]*$/", $last)) { header("Location: ../signup.php?signup=invalid"); exit(); } else { //Check if email is valid if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { header("Location: ../signup.php?signup=empty"); exit(); } else { $sql = "SELECT * FROM users WHERE user_username='username'"; $result = mysqli_query($conn, $sql); $resultCheck = mysqli_num_rows($result); if ($resultCheck > 0) { header("Location: ../signup.php?signup=usertaken"); exit(); } else { //Hashing the password $hashedPassword = password_hash($password, PASSWORD_DEFAULT); //Insert the user into the database $sql = "INSERT INTO users (user_first, user_last, user_email, user_username, user_password) VALUES ('$first', '$last', '$email', '$username' '$hashedPassword');"; mysqli_query($conn, $sql); header("Location: ../signup.php?signup=success"); exit(); } } } } } else { header("Location: ../signup.php"); exit(); }
Подключение к базе данных:
<?php $dbServername = "localhost"; $dbUsername = "root"; $dbPassword = ""; $dbServername = "loginsystem"; $conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbServername);
Зарегистрироваться форму (html в php-файле):
<?php include_once 'header.php';?> <section class="main-container"> <div class="wrapper"> <h2>Sign Up</h2> <form class="Sign" action="includes/signup.inc.php" method="POST"> <input type="text" name="first" placeholder="First Name"><br> <input type="text" name="last" placeholder="Last Name"><br> <input type="email" name="email" placeholder="E-mail"><br> <input type="text" name="username" placeholder="Username"><br> <input type="password" name="password" placeholder="Password"><br> <button type="submit" name="">Sign Up!</button><br> </form> </div> </section> <?php include_once 'footer.php';?>
Пожалуйста, помоги, если можешь. Это будет высоко ценится. Благодаря!
Дайте имя «отправить» на кнопку отправки своей страницы регистрации в формате HTML:
<button type="submit" name="submit">Sign Up!</button>
Изменить страницу регистрации PHP POST:
$first = mysqli_real_escape_string($conn, $_POST['first']); $last = mysqli_real_escape_string($conn, $_POST['last']); $email = mysqli_real_escape_string($conn, $_POST['email']); $username = mysqli_real_escape_string($conn, $_POST['username']); $password = mysqli_real_escape_string($conn, $_POST['password']);
Изменение пустых значений проверки stmt на:
if ( (empty($first)) || (empty($last)) or (empty($email)) || (empty($username)) || (empty($password)) )
Изменить правильность проверки входных символов, если stmt:
if ( (!preg_match("/^[a-zA-Z]*$/", $first)) || ((!preg_match("/^[a-zA-Z]*$/", $last)) ) )