Это главная страница, где пользователь регистрируется: registration.php: PHP: <?php require "db.php"; $data = $_POST; if (isset($data['sign_up'])) { $error = array(); if (trim($data['nik']) == "") { $error[] = "Введите Ник"; } if (trim($data['email']) == "") { $error[] = "Введите электронную почту"; } if (trim($data['password']) == "") { $error[] = "Введите пароль"; } if (trim($data['password_2']) == "") { $error[] = "Повторите пароль"; } if (R::count('users', 'nik = ?', array($data['nik'])) > 0) { $error[] = "Данный пользователь уже зарегистрирован на сайте"; } if (trim($data['password']) != trim($data['password_2'])) { $error[] = "Пароли не совпадают"; } if (empty($error)) { $user = R::dispense('users'); $user-> nik = $data['nik']; $user-> email = $data['email']; $user-> password = password_hash($data['password'], PASSWORD_DEFAULT); $user-> ip = $_SERVER['REMOTE_ADDR']; $user-> d_date_reg = date('d'); $user-> m_date_reg = date('m'); $user-> y_date_reg = date('Y'); $user-> h_date_reg = date('H'); $user-> m_time_reg = date('i'); R::store($user); }else { echo "<div>".array_shift($error)."</div>"; } } if(isset($data['sign_in'])){ $user = R::findOne('users', 'nik = ?', array($data['nik'])); if ($user) { if (password_verify($data['password'], $user->password)) { $_SESSION['logged_user'] = $user; } } } ?> <?php if(isset($_SESSION['logged_user'])) : ?> <meta http-equiv="refresh" content="0; URL='user.php'"> <?php else : ?> <html> <head> <title>Регистрация пользователя</title> <link rel="preconnect" href="[URL]https://fonts.googleapis.com[/URL] "> <link rel="preconnect" href="[URL]https://fonts.gstatic.com[/URL] " crossorigin> <link href="[URL]https://fonts.googleapis.com/css2[/URL] ?family=Cuprum&display=swap" rel="stylesheet"> </head> <body> <h2>Регистрация на МиЭндМи</h2> <form action="registration.php" method="POST"> <input type="text" name="nik" placeholder="Ник"> <input type="text" name="email" placeholder="Электронная почта"> <input type="password" name="password" placeholder="Пароль"> <input type="password" name="password_2" placeholder="Повторите пароль"> <button type="submit" name="sign_up">Регистрация</button> </form> <h2>Вход</h2> <form action="registration.php" method="POST"> <input type="text" name="nik" placeholder="Ник"> <input type="password" name="password" placeholder="Пароль"> <button type="submit" name="sign_in">Войти</button> </form> </body> </html> <?php endif; ?> После регистрации данные сохраняются в базу данных на сайте phpMyAdmin, и пользователь может авторизоваться: user.php: PHP: <?php require "db.php"; $user = R::findOne('users', 'id = ?', array($_SESSION['logged_user']->id)); ?> <html> <head> <title>Ваша страница</title> <link rel="preconnect" href="[URL]https://fonts.googleapis.com[/URL] "> <link rel="preconnect" href="[URL]https://fonts.gstatic.com[/URL] " crossorigin> <link href="[URL]https://fonts.googleapis.com/css2[/URL] ?family=Cuprum&display=swap" rel="stylesheet"> </head> <body> <p><?php if ($user == NULL) { echo "Yes"; //из-за ошибки я проверяла переменную, Yes выводится. здесь должно быть <?php echo $user->nik?> } ?></p> <a href="/logout.php">Выйти</a> </body> </html> Также пользователь может выйти из своего аккаунта: logout.php: <?php require "db.php"; //unset($_SESSION['logged_user']); //Здесь пыталась сделать так, чтобы сессия не удалялась, но на решение это не повлияло header('Location: /registration.php'); ?> Здесь база данных: db.php: PHP: <?php require "libs/rb.php"; R::setup( 'mysql:host=localhost;dbname=meandme', 'root', '' ); session_start(); ?> Много чего пыталась сделать, но не получается. Кто понимает в чём здесь проблема, очень жду вашего ответа. Версия PHP: 7.3 Версия MySQL: 8.0 От модератора: вставляй код кнопкой </>
OMG И вообще много фигни. Типа поиска по нику прямо при регистрации после попытки вставки. Вывод в ответ на POST. --- Добавлено --- Смотрю, store вполне вменяемо возвращает id при успешной вставке
Пробовали, посмотреть какой sql запрос у вас получается? Запрос полагаю в файле db.php Типа echo $sql; Также этот sql Запрос можно запустить в phpMyadmin и посмотреть там ник.