Имеется простенький скрипт авторизации: PHP: <?php include_once("connect.php"); if(isset($_POST['submit'])) { $login = $_POST['login']; //Имя пользователя, введенное в форму $password = $_POST['password']; // Пароль введенный в форму //Запрос из базы данных по проверки существования в базе введенного пользователя //с введенным паролем $query = "SELECT id, login, password FROM users WHERE login ='{$login}' AND password='{$password}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); //Выполняется запрос if (mysql_num_rows($sql) == 1) { $login = true; session_start(); $_SESSION['auth']=1; break; echo 'Авторизация прошла успешно'; } else echo 'Неправильное имя или пароль'; } ?> Если вводим верные логин и пароль, выдает такую ошибку: Fatal error: Cannot break/continue 1 level in Z:\home\192.168.0.100\www\avtorization.php on line 21
NyaNeko Няшно ^_^ А можешь пояснить зачем тебе там break нужен ? Ну и классическое $password = $_POST['password'] обдумай хорошенько... (в сбегай поиск по SQL-injection, а то как-то не кавайно будет если тебе сервак обрушат)
NyaNeko А при чем здесь break? Я тут цикла или switch что-то не наблюдаю. p.s. Vladson, опередил на одну секунду =)
С сессиями связываюсь впервые, делаю по примерам, поэтому там присутствует break = ) Вот код без сессий, не могли бы Вы подсказать, как правильно организовать их? Нужно, чтобы после того, как пользователь авторизовался, данные об этом хранились в сессии, и при переходе на новую страничку сайта не приходилось авторизоваться снова. PHP: <?php include_once("connect.php"); if(isset($_POST['submit'])) { $login = $_POST['login']; //Имя пользователя, введенное в форму $password = $_POST['password']; // Пароль введенный в форму //Запрос из базы данных по проверки существования в базе введенного пользователя //с введенным паролем $query = "SELECT id, login, password FROM users WHERE login ='{$login}' AND password='{$password}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); //Выполняется запрос if (mysql_num_rows($sql) == 1) echo 'Авторизация прошла успешно'; else echo 'Неправильное имя или пароль'; } ?> Обязательно учту, но сперва хотелось бы разобраться с сессиями =)
Не вполне понимаю к чему эти танцы с $login и $_SESSION['auth'] но примерно так может заработать (может не точно, не проверял но почти) Код (Text): if (mysql_num_rows($sql) == 1) { $login = true; session_start(); $_SESSION['auth']=1; echo 'Авторизация прошла успешно'; } else { $login = false; session_start(); $_SESSION['auth']=0; echo 'Неправильное имя или пароль'; } А вообще учитывая что разбираешься с примерами, то посмотри другие, нормальные примеры...
Vladson Спасибо большое, не ругается больше при правильной авторизации. Теперь такой вопрос, Код (Text): <?php session_start(); if($_SESSION['auth']!=1) { echo('Авторизуйтесь с главной страницы!'); exit; } ?> Это мы записываем в самое начало файла, к которому хотим ограничить доступ незарегистрированным пользователям. Но эти странички все равно открываются по прямой ссылке и над содержанием пишет ошибку: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\127.0.0.1\www\users\index.php:5) in Z:\home\127.0.0.1\www\users\index.php on line 6