После регистрации пользователь в базу таблицы users не попадает..В чем проблема?
Помогите пожалуйста найти ошибку. Голову уже сломал. Я только начал изучать php и sql запросы. После заполнения всех полей и нажатия кнопки регистрации пользователь в базу не попадает. Соединение с базой успешно. Таблица users создана. Проблема как раз в коде. вот где именно в упор не вижу.
action.php
<?php session_start(); require_once 'auth.php'; $user = new Auth(); if(isset($_POST['action']) && $_POST['action'] == 'register'){ $name = $user->test_input($_POST['name']); $email = $user->test_input($_POST['email']); $pass = $user->test_input($_POST['password']); $hpass = password_hash($pass, PASSWORD_DEFAULT); if($user->user_exist($email)){ echo $user->showMessage('warning','This E-Mail is already registered!'); } else{ if($user->register($name,$email,$hpass)){ echo 'register'; $_SESSION['user'] = $email; } else{ echo $user->showMessage('danger','Something went wrong! try again later!'); } } } ?> |
<?php session_start(); require_once 'auth.php'; $user = new Auth(); if(isset($_POST['action']) && $_POST['action'] == 'register'){ $name = $user->test_input($_POST['name']); $email = $user->test_input($_POST['email']); $pass = $user->test_input($_POST['password']); $hpass = password_hash($pass, PASSWORD_DEFAULT); if($user->user_exist($email)){ echo $user->showMessage('warning','This E-Mail is already registered!'); } else{ if($user->register($name,$email,$hpass)){ echo 'register'; $_SESSION['user'] = $email; } else{ echo $user->showMessage('danger','Something went wrong! try again later!'); } } } ?>
config.php
<?php class Database{ private $dsn = "mysql:host=localhost;dbname=db_user_system"; private $dbuser = "programer"; private $dbpass = "programer"; public $conn; public function __construct(){ try { $this->conn = new PDO($this->dsn,$this->dbuser,$this->dbpass); }catch (PDOException $e){ echo 'Error : '.$e->getMessage(); } return $this->conn; } //Check Input public function test_input($data){ $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } //Error Success Message Alert public function showMessage($type, $message){ return '<div class="alert alert-'.$type.' alert-dismissible"> <button type="button" class="close" data-dismiss="alert">&times;</button> <strong class="text-center">'.$message.'</strong> </div>'; } } ?> |
<?php class Database{ private $dsn = "mysql:host=localhost;dbname=db_user_system"; private $dbuser = "programer"; private $dbpass = "programer"; public $conn; public function __construct(){ try { $this->conn = new PDO($this->dsn,$this->dbuser,$this->dbpass); }catch (PDOException $e){ echo 'Error : '.$e->getMessage(); } return $this->conn; } //Check Input public function test_input($data){ $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } //Error Success Message Alert public function showMessage($type, $message){ return '<div class="alert alert-'.$type.' alert-dismissible"> <button type="button" class="close" data-dismiss="alert">&times;</button> <strong class="text-center">'.$message.'</strong> </div>'; } } ?>
auth.php
<?php require_once 'config.php'; class Auth extends Database{ // Register New User public function register($name, $email, $password){ $sql = "INSERT INTO users (name, email, password) VALUES (:name, :email, :pass)"; $stmt = $this->conn->prepare($sql); $stmt->execute(['name'=>$name, 'email'=>$email, 'pass'=>$password]); return true; } //Check if user already registered public function user_exist($email){ $sql = "SELECT email FROM users WHERE email = :email"; $stmt = $this->conn->prepare($sql); $stmt->execute(['email'=>$email]); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result; } } ?> |
<?php require_once 'config.php'; class Auth extends Database{ // Register New User public function register($name, $email, $password){ $sql = "INSERT INTO users (name, email, password) VALUES (:name, :email, :pass)"; $stmt = $this->conn->prepare($sql); $stmt->execute(['name'=>$name, 'email'=>$email, 'pass'=>$password]); return true; } //Check if user already registered public function user_exist($email){ $sql = "SELECT email FROM users WHERE email = :email"; $stmt = $this->conn->prepare($sql); $stmt->execute(['email'=>$email]); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result; } } ?>
Дополнительно:
index.php
<!-- Login Form Start --> <div class="row justify-content-center wrapper" id="login-box"> <div class="col-lg-10 my-auto myShadow"> <div class="row"> <div class="col-lg-7 bg-white p-4"> <h1 class="text-center font-weight-bold text-primary">Sign in to Account</h1> <hr class="my-3" /> <form action="#" method="post" class="px-3" id="login-form"> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-envelope fa-lg fa-fw"></i></span> </div> <input type="email" id="email" name="email" class="form-control rounded-0" placeholder="E-Mail" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="fas fa-key fa-lg fa-fw"></i></span> </div> <input type="password" id="password" name="password" class="form-control rounded-0" minlength="5" placeholder="Password" required autocomplete="off" /> </div> <div class="form-group clearfix"> <div class="custom-control custom-checkbox float-left"> <input type="checkbox" class="custom-control-input" id="customCheck" name="rem" /> <label class="custom-control-label" for="customCheck">Remember me</label> </div> <div class="forgot float-right"> <a href="#" id="forgot-link">Forgot Password?</a> </div> </div> <div class="form-group"> <input type="submit" id="login-btn" value="Sign In" class="btn btn-primary btn-lg btn-block myBtn" /> </div> </form> </div> <div class="col-lg-5 d-flex flex-column justify-content-center myColor p-4"> <h1 class="text-center font-weight-bold text-white">Hello Friends!</h1> <hr class="my-3 bg-light myHr" /> <p class="text-center font-weight-bolder text-light lead">Enter your personal details and start your journey with us!</p> <button class="btn btn-outline-light btn-lg align-self-center font-weight-bolder mt-4 myLinkBtn" id="register-link">Sign Up</button> </div> </div> </div> </div> <!-- Login Form End --> <!-- Registration Form Start --> <div class="row justify-content-center wrapper" id="register-box" style="display: none;"> <div class="col-lg-10 my-auto myShadow"> <div class="row"> <div class="col-lg-5 d-flex flex-column justify-content-center myColor p-4"> <h1 class="text-center font-weight-bold text-white">Welcome Back!</h1> <hr class="my-4 bg-light myHr" /> <p class="text-center font-weight-bolder text-light lead">To keep connected with us please login with your personal info.</p> <button class="btn btn-outline-light btn-lg font-weight-bolder mt-4 align-self-center myLinkBtn" id="login-link">Sign In</button> </div> <div class="col-lg-7 bg-white p-4"> <h1 class="text-center font-weight-bold text-primary">Create Account</h1> <hr class="my-3" /> <form action="#" method="post" class="px-3" id="register-form"> <div id="regAlert"></div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-user fa-lg fa-fw"></i></span> </div> <input type="text" id="name" name="name" class="form-control rounded-0" placeholder="Full Name" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-envelope fa-lg fa-fw"></i></span> </div> <input type="email" id="remail" name="email" class="form-control rounded-0" placeholder="E-Mail" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="fas fa-key fa-lg fa-fw"></i></span> </div> <input type="password" id="rpassword" name="password" class="form-control rounded-0" minlength="5" placeholder="Password" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="fas fa-key fa-lg fa-fw"></i></span> </div> <input type="password" id="cpassword" name="cpassword" class="form-control rounded-0" minlength="5" placeholder="Confirm Password" required /> </div> <div class="form-group"> <div id="passError" class="text-danger font-weight-bolder"></div> </div> <div class="form-group"> <input type="submit" id="register-btn" value="Sign Up" class="btn btn-primary btn-lg btn-block myBtn" /> </div> </form> </div> </div> </div> </div> <!-- Registration Form End --> <!-- Forgot Password Form Start --> <div class="row justify-content-center wrapper" id="forgot-box" style="display: none;"> <div class="col-lg-10 my-auto myShadow"> <div class="row"> <div class="col-lg-7 bg-white p-4"> <h1 class="text-center font-weight-bold text-primary">Forgot Your Password?</h1> <hr class="my-3" /> <p class="lead text-center text-secondary">To reset your password, enter the registered e-mail adddress and we will send you password reset instructions on your e-mail!</p> <form action="#" method="post" class="px-3" id="forgot-form"> <div id="forgotAlert"></div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-envelope fa-lg"></i></span> </div> <input type="email" id="femail" name="email" class="form-control rounded-0" placeholder="E-Mail" required /> </div> <div class="form-group"> <input type="submit" id="forgot-btn" value="Reset Password" class="btn btn-primary btn-lg btn-block myBtn" /> </div> </form> </div> <div class="col-lg-5 d-flex flex-column justify-content-center myColor p-4"> <h1 class="text-center font-weight-bold text-white">Reset Password!</h1> <hr class="my-4 bg-light myHr" /> <button class="btn btn-outline-light btn-lg font-weight-bolder myLinkBtn align-self-center" id="back-link">Back</button> </div> </div> </div> </div> <!-- Forgot Password Form End --> </div> <!-- jQuery CDN --> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/twitter-bootstrap/4.4.1/js/bootstrap.bundle.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/js/all.min.js"></script> <script type="text/javascript"> $(function () { $("#register-link").click(function () { $("#login-box").hide(); $("#register-box").show(); }); $("#login-link").click(function () { $("#login-box").show(); $("#register-box").hide(); }); $("#forgot-link").click(function () { $("#login-box").hide(); $("#forgot-box").show(); }); $("#back-link").click(function () { $("#login-box").show(); $("#forgot-box").hide(); }); //Register Ajax Requst $("#register-btn").click(function(e){ if($("#register-form")[0].checkValidity()){ e.preventDefault(); $("#register-btn").val('Please Wait...'); if($("#rpassword").val() != $("#cpassword").val()){ $("#passError").text('* Password did not matched!'); $("#register-btn").val('Sign Up'); } else{ $("#passError").text(''); $.ajax({ url: 'assets/php/action.php', method: 'post', data: $("#register-form").serialize()+'&action=register', success:function(response){ $("#register-btn").val('Sign Up'); if(response === 'register'){ window.location = 'home.php'; } else{ $("#regAlert").html(response); } } }); } } }); }); |
<!-- Login Form Start --> <div class="row justify-content-center wrapper" id="login-box"> <div class="col-lg-10 my-auto myShadow"> <div class="row"> <div class="col-lg-7 bg-white p-4"> <h1 class="text-center font-weight-bold text-primary">Sign in to Account</h1> <hr class="my-3" /> <form action="#" method="post" class="px-3" id="login-form"> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-envelope fa-lg fa-fw"></i></span> </div> <input type="email" id="email" name="email" class="form-control rounded-0" placeholder="E-Mail" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="fas fa-key fa-lg fa-fw"></i></span> </div> <input type="password" id="password" name="password" class="form-control rounded-0" minlength="5" placeholder="Password" required autocomplete="off" /> </div> <div class="form-group clearfix"> <div class="custom-control custom-checkbox float-left"> <input type="checkbox" class="custom-control-input" id="customCheck" name="rem" /> <label class="custom-control-label" for="customCheck">Remember me</label> </div> <div class="forgot float-right"> <a href="#" id="forgot-link">Forgot Password?</a> </div> </div> <div class="form-group"> <input type="submit" id="login-btn" value="Sign In" class="btn btn-primary btn-lg btn-block myBtn" /> </div> </form> </div> <div class="col-lg-5 d-flex flex-column justify-content-center myColor p-4"> <h1 class="text-center font-weight-bold text-white">Hello Friends!</h1> <hr class="my-3 bg-light myHr" /> <p class="text-center font-weight-bolder text-light lead">Enter your personal details and start your journey with us!</p> <button class="btn btn-outline-light btn-lg align-self-center font-weight-bolder mt-4 myLinkBtn" id="register-link">Sign Up</button> </div> </div> </div> </div> <!-- Login Form End --> <!-- Registration Form Start --> <div class="row justify-content-center wrapper" id="register-box" style="display: none;"> <div class="col-lg-10 my-auto myShadow"> <div class="row"> <div class="col-lg-5 d-flex flex-column justify-content-center myColor p-4"> <h1 class="text-center font-weight-bold text-white">Welcome Back!</h1> <hr class="my-4 bg-light myHr" /> <p class="text-center font-weight-bolder text-light lead">To keep connected with us please login with your personal info.</p> <button class="btn btn-outline-light btn-lg font-weight-bolder mt-4 align-self-center myLinkBtn" id="login-link">Sign In</button> </div> <div class="col-lg-7 bg-white p-4"> <h1 class="text-center font-weight-bold text-primary">Create Account</h1> <hr class="my-3" /> <form action="#" method="post" class="px-3" id="register-form"> <div id="regAlert"></div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-user fa-lg fa-fw"></i></span> </div> <input type="text" id="name" name="name" class="form-control rounded-0" placeholder="Full Name" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-envelope fa-lg fa-fw"></i></span> </div> <input type="email" id="remail" name="email" class="form-control rounded-0" placeholder="E-Mail" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="fas fa-key fa-lg fa-fw"></i></span> </div> <input type="password" id="rpassword" name="password" class="form-control rounded-0" minlength="5" placeholder="Password" required /> </div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="fas fa-key fa-lg fa-fw"></i></span> </div> <input type="password" id="cpassword" name="cpassword" class="form-control rounded-0" minlength="5" placeholder="Confirm Password" required /> </div> <div class="form-group"> <div id="passError" class="text-danger font-weight-bolder"></div> </div> <div class="form-group"> <input type="submit" id="register-btn" value="Sign Up" class="btn btn-primary btn-lg btn-block myBtn" /> </div> </form> </div> </div> </div> </div> <!-- Registration Form End --> <!-- Forgot Password Form Start --> <div class="row justify-content-center wrapper" id="forgot-box" style="display: none;"> <div class="col-lg-10 my-auto myShadow"> <div class="row"> <div class="col-lg-7 bg-white p-4"> <h1 class="text-center font-weight-bold text-primary">Forgot Your Password?</h1> <hr class="my-3" /> <p class="lead text-center text-secondary">To reset your password, enter the registered e-mail adddress and we will send you password reset instructions on your e-mail!</p> <form action="#" method="post" class="px-3" id="forgot-form"> <div id="forgotAlert"></div> <div class="input-group input-group-lg form-group"> <div class="input-group-prepend"> <span class="input-group-text rounded-0"><i class="far fa-envelope fa-lg"></i></span> </div> <input type="email" id="femail" name="email" class="form-control rounded-0" placeholder="E-Mail" required /> </div> <div class="form-group"> <input type="submit" id="forgot-btn" value="Reset Password" class="btn btn-primary btn-lg btn-block myBtn" /> </div> </form> </div> <div class="col-lg-5 d-flex flex-column justify-content-center myColor p-4"> <h1 class="text-center font-weight-bold text-white">Reset Password!</h1> <hr class="my-4 bg-light myHr" /> <button class="btn btn-outline-light btn-lg font-weight-bolder myLinkBtn align-self-center" id="back-link">Back</button> </div> </div> </div> </div> <!-- Forgot Password Form End --> </div> <!-- jQuery CDN --> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/twitter-bootstrap/4.4.1/js/bootstrap.bundle.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/js/all.min.js"></script> <script type="text/javascript"> $(function () { $("#register-link").click(function () { $("#login-box").hide(); $("#register-box").show(); }); $("#login-link").click(function () { $("#login-box").show(); $("#register-box").hide(); }); $("#forgot-link").click(function () { $("#login-box").hide(); $("#forgot-box").show(); }); $("#back-link").click(function () { $("#login-box").show(); $("#forgot-box").hide(); }); //Register Ajax Requst $("#register-btn").click(function(e){ if($("#register-form")[0].checkValidity()){ e.preventDefault(); $("#register-btn").val('Please Wait...'); if($("#rpassword").val() != $("#cpassword").val()){ $("#passError").text('* Password did not matched!'); $("#register-btn").val('Sign Up'); } else{ $("#passError").text(''); $.ajax({ url: 'assets/php/action.php', method: 'post', data: $("#register-form").serialize()+'&action=register', success:function(response){ $("#register-btn").val('Sign Up'); if(response === 'register'){ window.location = 'home.php'; } else{ $("#regAlert").html(response); } } }); } } }); });
Как правильно написал Антон, пора знакомиться с таким понятием, как отладка.
Но дополним его ответ более практическими рекомендациями.
Во-первых, при создании соединения с БД, надо сказать ПДО, чтобы он сообщал об ошибках.
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Во-вторых, временно, на период разработки, включить отображение ошибок РНР. Чтобы тупо увидеть, если произошла какая-то ошибка.
ini_set('display_errors', 1);
И в-третьих, начать собственно отладку.
Для начала убедившись, что РНР код в принципе запускается, и проблема в нем, а не в форме.
Для этого в самом начале action.php пишем большими буквами
die("пхп хотя бы запустился");
И если после нажатия на кнопку мы этот текст не увидели, то начинаем тупить в свою форму - а с чего она вообще должна что-то посылать в файл action.php (и попутно задаваться вопросом - а какое отношение наш вопрос имеет к php и sql?)?
Если форма отправляется аяксом, то смотрим ответ пхп в инструментах разработчика, вкладка Сеть.
Если обработку формы мы начали, то заезжаем внутрь условия
die("начали обработку формы");
И так далее, отслеживаем работу своего кода, выполняется ли он вообще, и содержат ли переменные нужные значения.
А в целом, конечно, код очень жестокий.
Вот прямо хочется спросить -
зачем здесь функция test_input?
зачем здесь try {}catch (){echo 'Error : '.$e-getMessage();}?
зачем class Auth extends Database?
почему showMessage - это часть класса Database? Ну вот серьёзно, каким местом вывод сообщения в браузер в виде HTML хоть как-то относится к работе с базой данных?
Чтобы сделать этот код минимально осмысленным, надо
выкинуть класс Database
в класс Auth добавить
public function __construct($pdo){ $this->conn = $pdo; } |
public function __construct($pdo){ $this->conn = $pdo; }
и выкинуть из него require_once 'config.php';
В config.php оставить только соединение с PDO
в action написать
require 'config.php'; $user = new Auth($pdo); |
require 'config.php'; $user = new Auth($pdo);
и выкинуть условие при регистрации, оставив только
$user->register($name,$email,$hpass); $_SESSION['user'] = $email; |
$user->register($name,$email,$hpass); $_SESSION['user'] = $email;
И тогда этот код станет минимально осмысленным
Ответы:
Явно включите
class Database{ ... public function __construct(){ try { $this->conn = new PDO($this->dsn,$this->dbuser,$this->dbpass); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
class Database{ ... public function __construct(){ try { $this->conn = new PDO($this->dsn,$this->dbuser,$this->dbpass); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Отключите на время отладки js обработчик формы.
- добейтесь работы стандартным .
Убедитесь, что вообще в нужный кусок кода попадает
if(isset($_POST['action']) && $_POST['action'] == 'register'){ die('POST WORK'); |
if(isset($_POST['action']) && $_POST['action'] == 'register'){ die('POST WORK');
Добро пожаловать в увлекательный мир отладки. Есть два стула пути:
1. Поставить и настроить отладчик и пошагово пройти скрипт, увидев в какой строке проблема.
2. Применить способ debug-print. В разных частях кода добавить вывод на экран какой-либо строки (типа echo "point 1"; и/или переменной (var_dump($name)). По выводу уже и определить, где ошибка.
Как-то так.
А что, $stmt->errno/$stmt->error уже запретили?
- Разумеется. Этот идиотизм запретили уже давно :)
Ошибка может быть связана с неправильным использованием fetch в методе user_exist класса Auth. fetch возвращает массив, который содержит все столбцы из следующей строки результирующего набора. Если тебе надо проверить, существует ли пользователь с определенным адресом электронной почты, то нужно проверить, что $result не пустой.
Также, в методе register класса Auth, ты не проверяешь, успешно ли выполнен запрос. Добавь проверку, чтобы убедиться, что запрос был успешно выполнен.
Типа того:
public function user_exist($email){ $sql = "SELECT email FROM users WHERE email = :email"; $stmt = $this->conn->prepare($sql); $stmt->execute(['email'=>$email]); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result ? true : false; } // Новый юзер public function register($name, $email, $password){ $sql = "INSERT INTO users (name, email, password) VALUES (:name, :email, :pass)"; $stmt = $this->conn->prepare($sql); $stmt->execute(['name'=>$name, 'email'=>$email, 'pass'=>$password]); return $stmt->rowCount() > 0; } |
public function user_exist($email){ $sql = "SELECT email FROM users WHERE email = :email"; $stmt = $this->conn->prepare($sql); $stmt->execute(['email'=>$email]); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result ? true : false; } // Новый юзер public function register($name, $email, $password){ $sql = "INSERT INTO users (name, email, password) VALUES (:name, :email, :pass)"; $stmt = $this->conn->prepare($sql); $stmt->execute(['name'=>$name, 'email'=>$email, 'pass'=>$password]); return $stmt->rowCount() > 0; }
- Это всё ненужные бессмысленные телодвижения. Учите язык.
В РНР динамическая типизация, и "массив, который содержит все столбцы из следующей строки результирующего набора" вполне служит заменой true
К тому же вы и сами наверняка постоянно пишете
while ($row = $stmt->fetch())
но при этом тот факт, что "массив, который содержит все столбцы", используется в булевом контексте вас не смущает :)Проверка на успешность запроса также является бессмысленной.
Причем ваш код является неправильным дважды
Во-первых, в общем случае наличие положительного результата rowCount() не является показателем успешности запроса. Там может быть и ноль, но запрос все равно будет успешным. Не INSERT но любой другой может. Эту функцию нельзя использовать для проверки успешности.
Во-вторых, сама по себе проверка на успешность запроса является бессмысленной. Если РНР не выдал ошибку, то запрос по определению был успешным. И дополнительно это проверять просто глупо.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Проблема может быть вызвана несколькими возможными причинами. Вот несколько вариантов, которые стоит проверить:
1. Проверьте, правильно ли заданы параметры подключения к базе данных в вашем скрипте. Убедитесь, что вы используете правильные учетные данные для доступа к базе данных (хост, имя пользователя, пароль, название базы данных).
2. Убедитесь, что вы выполняете запрос INSERT в базу данных после того, как пользователь успешно прошел процесс регистрации. Проверьте, что ваш запрос SQL корректно сформулирован и не содержит ошибок.
3. Проверьте, нет ли ошибок в вашем коде, которые могут привести к тому, что данные не сохраняются в базе данных. Убедитесь, что после выполнения запроса INSERT вы проверяете результат операции и выводите сообщение об ошибке, если что-то пошло не так.
4. Проверьте, не блокирует ли какой-то другой код выполнение запроса INSERT в базу данных. Например, если у вас есть транзакции или блокировки, они могут помешать данным быть записанными в базу данных.
5. Убедитесь, что в вашей базе данных нет ограничений на добавление новых записей в таблицу users. Проверьте, что вы не достигли максимального количества записей или что у вас нет каких-либо других ограничений на добавление данных.
Проверьте эти пункты и исправьте возможные ошибки в вашем коде. Если проблема не будет решена, попробуйте добавить дополнительные проверки и выводы сообщений об ошибках, чтобы легче было отследить причину проблемы.