Ошибка входа в систему PHP SQL
Привет,
Я создаю систему входа PHP через учебник, но у меня есть ошибка, которую я не знаю, как ее решить..
В моем url-адресе я получаю sqlerror.
У меня есть dbhandler в другом файле, но я уверен, что это не проблема, потому что он работает в другом файле.
Я проверил синтаксические ошибки, и это не проблема..
Кто-нибудь может мне помочь?
Это мой код.:
<pre><?php if (isset($_POST['signup-submit'])) { require 'dbh.inc.php'; $username = $_POST['uid']; $email = $_POST['mail']; $password = $_POST['pwd']; $passwordrepeat = $_POST['pwd-repeat']; if (empty($username) || empty($email) || empty($password) || empty($passwordrepeat)) { header("Location: ../signup.php?error=emptyfields&uid=".$username."&mail=".$email); exit(); } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL) && !preg_match("/^[a-zA-Z0-9]*$/", $username)) { header("Location: ../signup.php?error=invalidmailuid="); exit(); } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { header("Location: ../signup.php?error=invalidmail&uid=".$username); exit(); } elseif (!preg_match("/^[a-zA-Z0-9]*$/", $username)) { header("Location: ../signup.php?error=invaliduid&mail=".$email); exit(); } elseif ($password !== $passwordrepeat) { header("Location: ../signup.php?error=passwordcheck&uid=".$username."&mail=".$email); exit(); } else { $sql = "SELECT uidUsers FROM users 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?error=usertaken&mail=".$email); exit(); } else { $sql = "INSERT INTO users (uidUsers, mailusers, 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_DEFAULT); mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd); mysqli_stmt_execute($stmt); header("Location: ../signup.php?signup=success"); exit(); } } } } mysqli_stmt_close($stmt); mysqli_close($conn); } else { header("Location: ../signup.php"); exit(); }
Спасибо Сэм
Что я уже пробовал:
Я попытался следовать учебнику для простой системы входа в систему от mmtuts на yt.
Richard MacCutchan
В чем же ошибка? При предположении, что в вашем операторе SELECT отсутствует слово "WHERE" перед конечным условием. Как предлагает OriginalGriff, вы должны выбросить этот код в мусорное ведро и изучить несколько правильных учебников. Те, кто в W3Schools Online Web Tutorials[^] все очень легко следовать.