Привет! делал регистрацию на сайт с реф.ссылкой. она несколько дней работал без ошибок, потом хотел добавить подтверждение email. но не получалось потом все назад сделал,теперь у меня когда регистрируюсь не отправляет запрос в таблицу users, нажимаю "Регистрацию' страница просто обновляется и все, но в таблицу referals сохраняются id зарегистрившего пользователя соединение с бд Код (Text): <? session_start(); $con = mysqli_connect('localhost', 'root', '', 'help'); ?> таблица users:
кажется ошибка не в коде, она только что 1 раз работал нормально, одного пользователя как то добавил , но потом опять перестал работать\
пробовал удалить денвер и заново скачать,ничего не получается, в таблицу referals заносятся данные а таблица users вообще не работает
проверяй на ошибки https://www.php.net/manual/ru/mysqli.error.php PHP: if (!$mysqli->query("SET @a:='this will not work'")) { printf("Ошибка: %s\n", $mysqli->error); } если бы ты вместо скрина кода, вставил бы сюда сам код было бы лучше.
Код (Text): <?php session_start(); include "db.php"; if (!empty($_SESSION['logged_user']->id)) header('location: check.php'); if (isset($_POST['login'])) { if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['password'])) { $name = $_POST['name']; $email = $_POST['email']; $password = $_POST['password']; $ref = $_SESSION['ref_id']; if(mysqli_num_rows(mysqli_query($con, "SELECT id FROM users WHERE name = '$name'"))!= 0) $error = "Пользователь с таким ником уже существует"; else if(mysqli_num_rows(mysqli_query($con, "SELECT id FROM users WHERE email = '$email'"))!= 0) $error = "Пользователь с таким email уже существует"; else { mysqli_query($con, "INSERT INTO `users` (name,email,password VALUES('$name', '$email', '$password')"); $as = mysqli_query($con, "SELECT id FROM users WHERE email = '$email'"); $a = mysqli_fetch_assoc($as); $i = $a['id']; $_SESSION['logged_user']->id = $i; $user = mysqli_query($con, "SELECT `id` FROM `users` WHERE `email` = '$email'"); $a = mysqli_fetch_assoc($user); $us=$a['id']; $query = mysqli_query($con, "INSERT INTO `referals` (id, id_user, id_usser) VALUES('','$us', '$ref')"); } }else $error = "Заполните все поля"; } echo $error; ?> на ошибки проверял,не работал,возможно неправильно проверял,куда написать код для вывода ошибки?
как то так, но это все последовательно делается когда пишется код: PHP: <?php session_start(); include "db.php"; if (!empty($_SESSION['logged_user']->id)) header('location: check.php'); if (isset($_POST['login'])) { if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['password'])) { $name = $_POST['name']; $email = $_POST['email']; $password = $_POST['password']; $ref = $_SESSION['ref_id']; if ($result = mysqli_query($con, "SELECT id FROM users WHERE name = '$name'")) { $row_cnt = mysqli_num_rows($result); if($row_cnt !== 0){ $error = "Пользователь с таким ником уже существует"; }else if{ if ($result = mysqli_query($con, "SELECT id FROM users WHERE email = '$email'")){ $row_cnt = mysqli_num_rows($result); if($row_cnt !== 0){ $error = "Пользователь с таким email уже существует"; }else{ if (mysqli_query($con, "INSERT INTO `users` (name,email,password VALUES('$name', '$email', '$password')"){ if ($as = mysqli_query($con, "SELECT id FROM users WHERE email = '$email'")){ $a = mysqli_fetch_assoc($as); $i = $a['id']; $_SESSION['logged_user']->id = $i; if($user = mysqli_query($con, "SELECT `id` FROM `users` WHERE `email` = '$email'")){ $a = mysqli_fetch_assoc($user); $us=$a['id']; if($query = mysqli_query($con, "INSERT INTO `referals` (id, id_user, id_usser) VALUES('','$us', '$ref')")){ }else{ printf("Ошибка: %s\n", $mysqli->error); } }else{ printf("Ошибка: %s\n", $mysqli->error); } }else{ printf("Ошибка: %s\n", $mysqli->error); }; }else{ printf("Ошибка: %s\n", $mysqli->error); } } }else{ printf("Ошибка: %s\n", $mysqli->error); } } }else{ printf("Ошибка: %s\n", $mysqli->error); } } }else { $error = "Заполните все поля"; } } echo $error; ?> напишите заново все, проверяйте на ошибку каждый запрос. и sql инъекции тут спокойно проходят