|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.11.2010, 19:07 | #1 |
Заблокирован
Регистрация: 05.09.2010
Сообщений: 23
|
Ошибка - Warning: Cannot modify header information - headers already sent by (output started at
Скрипт http://olgamlm.rxfly.net/1
Логин admin пароль p@$$w0rd Скрипт uni-auth.php <?php /* Универсальный скрипт авторизации. Используется сессии для хранения данных. Скрипт типа "всё-в-одном" - его необходимо включать в каждый файл для использования. Распространяется по лицензии BSD. +Требования: +-Mysql & PHP5 +-Созданое подключение к MySQL и запущеная сессия =) (c)2008 Vasilii B. Shpilchin */ ##Определяем константы define('USERS2_TABLE','users2'); define('SID',session_id()); ##Определяем функции //Функция выхода. //Пользователь считается авторизированым, если в сессии присутствует uid //см. "Действия - если пользователь авторизирован". function logout() { session_unregister('uid'); //Удаляем из сессии ID пользователя die(header('Location: '.$_SERVER['PHP_SELF'])); } //Функция входа. //Все выбраные поля записываются в сессию. //Таким образом, при каждом просмотре страницы не надо выбирать их заново. //Для обновления информации из БД можно пользоваться этой же функцией - имя и пароль //хранятся в сессиях function login($username,$password) { $result = mysql_query("SELECT * FROM `".USERS2_TABLE."` WHERE `username`='$username' AND `password`='$password';") or die(mysql_error()); $USER = mysql_fetch_array($result,1); //Генерирует удобный массив из результата запроса if(!empty($USER)) { //Если массив не пустой (это значит, что пара имя/пароль верная) $_SESSION = array_merge($_SESSION,$USER); //Добавляем массив с пользователем к массиву сессии mysql_query("UPDATE `".USERS2_TABLE."` SET `sid`='".SID."' WHERE `uid`='".$USER['uid']."';") or die(mysql_error()); return true; } else { return false; } } //Функция проверки залогинности пользователя. //При входе, ID сессии записывается в БД. //Если ID текущей сессии и SID из БД не совпадают, производится logout. //Благородя этому нельзя одновременно работать под одним ником с разных браузеров. function check_user($uid) { $result = mysql_query("SELECT `sid` FROM `".USERS2_TABLE."` WHERE `uid`='$uid';") or die(mysql_error()); $sid = mysql_result($result,0); return $sid==SID ? true : false; } ##Действия - если пользователь авторизирован if(isset($_SESSION['uid'])) { //Если была произведена авторизация, то в сессии есть uid //Константу удобно проверять в любом месте скрипта define('USER_LOGGED',true); //Создаём удобные переменные //Все поля таблицы пользователей записываются в сесси (см. стр. 35-37) //Таким образом, после добавления нового поля в таблицу надо дописть лишь одну строку $UserName = $_SESSION['username']; $UserPass = $_SESSION['password']; $UserID = $_SESSION['uid']; } else { define('USER_LOGGED',false); } ##Действия при попытке входа if (isset($_POST['login'])) { if(get_magic_quotes_gpc()) { //Если слеши автоматически добавляются $_POST['user']=stripslashes($_POST['user']); $_POST['pass']=stripslashes($_POST['pass']); } $user = mysql_real_escape_string($_POST['user']); $pass = mysql_real_escape_string($_POST['pass']); if(login($user,$pass)) { header('Refresh: 3'); die('Вы успешно авторизировались!'); } else { header('Refresh: 3;'); die('Пароль неправильный!'); } } ##Действия при попытке выхода if(isset($_GET['logout'])) { logout(); } ?> Скрипт бесплатный и походу не рабочий!!! Как исправить ошибку Warning: Cannot modify header information - headers already sent by (output started at /www/rxfly.net/o/l/olgamlm/home/site/1/uni-auth.php:1) in /www/rxfly.net/o/l/olgamlm/home/site/1/uni-auth.php on line 86 Тут я понял что в фаиле uni-auth.php, на 86 строке!!! Но я посчитал и строка 86 пустая((((( Помогите найти эту строку и исправить проблему |
09.11.2010, 21:01 | #2 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Проверьте везде, где можно, на наличие лишних пробелов и вывода в браузер до начала установки кук и сессий
|
10.11.2010, 00:19 | #3 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Файл сохраните в формате "UTF-8 без BOM".
Вам важна строчка "output started at /www/rxfly.net/o/l/olgamlm/home/site/1/uni-auth.php:1" которая говорит, что вывод начался в строке 1. Это значит, что либо перед <?php есть пробел или перевод строки (пустая строка), либо вы сохранили файл в формате UTF-8, но с BOM'ом. Каким редактором сохраняли файл?
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
10.11.2010, 06:49 | #4 |
Заблокирован
Регистрация: 05.09.2010
Сообщений: 23
|
Простым, стандартным блонкнотом
|
10.11.2010, 19:21 | #5 |
Заблокирован
Регистрация: 05.09.2010
Сообщений: 23
|
Я посмотрел ошибка гдето тут
header('Refresh: 3;'); |
10.11.2010, 19:23 | #6 |
Заблокирован
Регистрация: 05.09.2010
Сообщений: 23
|
Но в чем? ?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решение проблемы "Cannot add header information..." | dr.Chas | PHP | 11 | 30.07.2010 18:45 |
Ошибка warning C4715 | MAKEDON | Общие вопросы C/C++ | 2 | 21.03.2009 13:13 |
Ошибка в [headers] | Рустам | PHP | 3 | 14.03.2009 13:25 |
ошибка Query1: Cannot modify a read-only dataset | demo_nik | БД в Delphi | 5 | 07.11.2008 19:16 |
Warning: Narrowing given wide string constant lost information. Как исправить? | SkAndrew | Общие вопросы Delphi | 4 | 18.08.2008 12:11 |