есть подключение к баз данных все работает с этим проблем нету из формы передаем данные на проверку в бд если совпадают то данные пишем в сессий и выводим "Верные данные" иначе "Неверные данные". как правильно написать условие чтобы стр.secret1 реагировала правильно -а то я написал условие которое не знаю почему но не работает Код (Text): index.php <?php //Если форма авторизации отправлена... if (!empty($_REQUEST['password']) and !empty($_REQUEST['login'])) { //Пишем логин и пароль из формы в переменные (для удобства работы): $login = $_REQUEST['login']; $password = $_REQUEST['password']; /* Формируем и отсылаем SQL запрос: ВЫБРАТЬ ИЗ таблицы users2 ГДЕ поле_логин = $login И поле_пароль = $password. */ $mysqli = new mysqli("localhost", "root", "", "auth"); if (mysqli_connect_errno()) { printf("Ошибка соединения: %s\n", mysqli_connect_error()); exit(); } $query = 'SELECT*FROM users2 WHERE login="' . $login . '" AND password="' . $password . '"'; $result = mysqli_query($mysqli, $query); //ответ базы запишем в переменную $result. $user = mysqli_fetch_assoc($result); //преобразуем ответ из БД в нормальный массив PHP /*$dsn = "mysql:host=localhost;dbname=auth;charset=utf8"; $dbh = new PDO($dsn, 'root', ''); $stmt = $dbh->query('SELECT * FROM users2 WHERE login="' . $login . '" AND password="' . $password . '"'); $user = $stmt->fetchAll(PDO::FETCH_ASSOC);*/ //Если база данных вернула не пустой ответ - значит пара логин-пароль правильная if (!empty($user)) { //Стартуем сессию: session_start(); //Пишем в сессию информацию о том, что мы авторизовались: $_SESSION['auth'] = true; //Пишем в сессию логин и пароль пользователя (их мы берем из переменной $user!): $_SESSION['login'] = $user['login']; $_SESSION['password'] = $user['password']; echo 'Верные данные'; } else { //Пользователь неверно ввел логин или пароль, выполним какой-то код. echo 'Неверные данные'; } } ?> <!-- Это форма авторизации: --> <form action='index.php' method='POST'> <input name='login'> <input name='password' type='password'> <input type='submit' value='Отправить'> </form> <!-- Конец формы авторизации. --> <a href="secret1.php" target="_blank">Стр-1</a><br /> //===================================== secret.php <?php session_start(); if($_SESSION['auth'] !== true) { echo 'Неправильный логин или пароль'; } /*if(!empty($_SESSION['login']) && !empty($_SESSION['password'])){ echo 'Неправильный логин или пароль'; //header('Location: на страницу с авторизацией'); die(); }*/ ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <h1>Если ты авторизован то ты меня читаешь</h1> </body> </html> --- Добавлено --- есть подключение к баз данных все работает с этим проблем нету из формы передаем данные на проверку в бд если совпадают то данные пишем в сессий и выводим "Верные данные" иначе "Неверные данные". как правильно написать условие чтобы стр.secret1 реагировала правильно -а то я написал условие которое не знаю почему но не работает
не скрипт а дичь, за кой два раза подключаться разными расширениями ? --- Добавлено --- и в индексе что то главное для сессии отсутствует
ничоси. это тебе невероятно повезло. обычно когда нуб склеивает код из кусочков, то не работает вообще н и ч е г о if (!empty($user)) { session_start(); это неправильно. всега стартуй сессию в самом начале и без условий. долго объяснять, позже сам поймешь почему. просто сделай так