У меня такая проблема, есть сайт и там я пытаюсь сделать систему регистрации, сначала проверяется email потом пароль PHP: else if ($_POST['register_f']) { email_valid(); password_valid(); if ( mysqli_num_rows(mysqli_query($CONNECT, "SELECT `id` FROM `users` WHERE `email` = '$_POST[email]'")) ) message('Этот E-mail занят'); $code = random_str(5); $_SESSION['confirm'] = array( 'type' => 'register', 'email' => $_POST['email'], 'password' => $_POST['password'], 'code' => $code, ); mail($_POST['email'], 'Регистрация', "Код подтверждения регистрации: <b>$code</b>"); go('confirm'); потом он переносит на страничку confim, PHP: else if ($_POST['confirm_f']) { if ( $_SESSION['confirm']['type'] == 'register') { if ( $_SESSION['confirm']['code'] != $_POST['code'] ) message('Registratsiyani tasdiqlovchi kod xato kiritildi!'); $email = $_POST['email']; $password = $_POST['password']; $reg_date = getdate(); mysqli_query("INSERT INTO `user_db`(`id`, `email`, `password`, `reg_date`) VALUES ('','$email', '$password', '$reg_date')", $CONNECT); unset($_SESSION['confirm']); go('kirish'); } else not_found(); } после проверки код регистрации он должен занести данные в базу, но почему то не заносит, в файле log.php пишет PHP: mysqli_query() expects parameter 1 to be mysqli, null given
PHP: mysqli_query("INSERT INTO `user_db`(`email`, `password`, `reg_date`) VALUES ('$email', '$password', '$reg_date')", $CONNECT);
изначально код был таким PHP: mysqli_query($CONNECT, 'INSERT INTO `users` VALUES ("", "'.$_SESSION['confirm']['email'].'", "'.$_SESSION['confirm']['password'].'")'); он вообще правильный?
Данные сессии хранятся в супер-глобальном массиве $_SESSION. Сделайте var_dump ($_SESSION), и все данные, которые там есть появятся на экране... Если они там есть, конечно.
Попробовал код PHP: else if ($_POST['confirm_f']) { if ( $_SESSION['confirm']['type'] == 'register') { if ( $_SESSION['confirm']['code'] != $_POST['code'] ) message('Код активации указан неверно!'); $email = $_POST['email']; $password = $_POST['password']; mysqli_query("INSERT INTO `user_db`(`email`, `password`) VALUES ('$email', '$password')", $CONNECT); unset($_SESSION['confirm']); go('login'); } else not_found(); } потом посмотрел лог сервера там ошибка Код (Text): PHP Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /guest/gform.php on line 35 и данные в базу не записываются
опять та же самая ошибка Код (Text): PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given
думаю что ошибка в этом коде PHP: mysqli_query( $CONNECT, "INSERT INTO `user_db`(`email`, `password`) VALUES ('$email', '$password')"); также у меня при нажатии кнопки регистрации этот код должен проверить email адрес PHP: if ( mysqli_num_rows(mysqli_query($CONNECT, "SELECT `id` FROM `user_db` WHERE `email` = '$_POST[email]'")) ) message('Этот email уже занят!'); но он тоже не работает та же самая проблема Код (Text): PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given
Оно есть у тебя, это подключение? Если mysqli_query говорит что ему не дали параметр, значит что-то с подключением, видимо.
да, а то страничка вообще не загрузилась бы, потому что в начале страницы стоит проверка подключения PHP: $CONNTECT = mysqli_connect('localhost', '*******', '********', '********'); if(!$CONNTECT) exit('MYSQLI error');
Выведи на экран содержимое переменной $CONNECT и посмотри что в ней. Если ты код копировал из документа, то $CONNTECT и $CONNECT - разные переменные.
А подключение в том же файле что и всё остальное? с require ничего не напутал? Обычно такая ошибка возникает как раз когда что-то с подключением. --- Добавлено --- Оу, не заметил)