[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает переход
Floyd

<?php
include "scripts/connection.php";

function quote_smart($value)
{
if (get_magic_quotes_gpc()) { $value = stripslashes($value);}
if (!is_numeric($value)) {$value = "'" . mysql_real_escape_string($value) . "'"; }
return $value;
}

session_start();

$query = sprintf("SELECT id_user FROM accounts WHERE login=%s AND pass=%s",
quote_smart($_POST['name']),
quote_smart($_POST['pass']));

$result=mysql_query($query);

if(mysql_num_rows($result) > 0)
{
$data = mysql_fetch_assoc($result);
$_SESSION['name'] = $data['id_user'];
header('Location: cabinetinfo.php');
} else
{
echo "Извините! Такой пользователь не зарегистрирован, либо логин или пароль введены неверно!";
// exit();
}
?>


Задача:
При правильном вводе логина и пароля,должна загружаться страничка "cabinetinfo.php" где определенные поля заполняются остальными данными пользователя с БД.

При данном варианте кода,при верной авторизации,в текущую страницу "cabinet.php" загружается "cabinetinfo.php".Тоесть в одном окне 2 странички(((

ЗЫ Прошу спецов обратить внимание на код и сообщить если в нем присутствуют серьезные огрехи со стороны безопасности.

Заранее благодарен.С уважением,Дмитрий.



Спустя 38 минут, 3 секунды (8.05.2011 - 18:06) kovaldm написал(а):
Кавычки лучше отключить, а затем их самому экранировать.
Пароль храни в захешированном виде.
Числовые значения обрабатывай с помощью (int).
Переход как не работает - ошибки есть какие-то?
Страничка должна загружаться, или должна происходить переадресация?

Спустя 5 минут, 23 секунды (8.05.2011 - 18:11) Floyd написал(а):
Цитата

Переход как не работает - ошибки есть какие-то?

Страница грузится в текущую.Тоесть,в данном случае в див с формой загружается страница "cabinetinfo.php".

Спустя 2 минуты, 14 секунд (8.05.2011 - 18:13) Floyd написал(а):
Цитата
Страничка должна загружаться, или должна происходить переадресация?

Переадресация

Спустя 1 минута, 44 секунды (8.05.2011 - 18:15) kovaldm написал(а):
Тогда так наверное
header('location:www.host.ru/cabinetinfo.php');

Спустя 5 минут, 58 секунд (8.05.2011 - 18:21) Floyd написал(а):
Цитата (kovaldm @ 8.05.2011 - 15:15)
Тогда так наверное
header('location:www.host.ru/cabinetinfo.php');

Если так,то выдает ошибку "Fatal error: Cannot redeclare quote_smart() (previously declared in"

Спустя 4 минуты, 36 секунд (8.05.2011 - 18:26) inpost написал(а):
Floyd
Нельзя функцию так назвать, давай ей другое имя. Тебе говорят, что она была создана ранее с таким же именем.

Спустя 1 минута, 7 секунд (8.05.2011 - 18:27) kovaldm написал(а):
Цитата
Если так,то выдает ошибку "Fatal error: Cannot redeclare quote_smart() (previously declared in"

Это явно к header() не относится.

Спустя 7 минут, 27 секунд (8.05.2011 - 18:34) Floyd написал(а):
Цитата (inpost @ 8.05.2011 - 15:26)
Floyd
Нельзя функцию так назвать, давай ей другое имя. Тебе говорят, что она была создана ранее с таким же именем.

Спасибо,ошибку исправил,но переход не работает.После введенных данных просто ничего не происходит.

Спустя 1 минута, 39 секунд (8.05.2011 - 18:36) kovaldm написал(а):
Пропиши первой строкой скрипта вот это.
error_reporting(E_ALL);

Ошибки есть?

Спустя 13 минут, 11 секунд (8.05.2011 - 18:49) Floyd написал(а):
Цитата (kovaldm @ 8.05.2011 - 15:36)
Пропиши первой строкой скрипта вот это.
error_reporting(E_ALL);

Ошибки есть?

Три ошибки:

1)" Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent b"

2)"Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent"

3)"Warning: Cannot modify header information - headers already sent by"

Спустя 1 минута, 8 секунд (8.05.2011 - 18:50) kovaldm написал(а):
О! Где-то ранее есть вывод в поток. Или BOM мешает.
И не должно быть никаких пустых строк или пробелов перед <?php. Так же в подключаемых файлах не должно быть вывода или пустых строк "вне кода".

Спустя 11 минут, 30 секунд (8.05.2011 - 19:02) Floyd написал(а):
Цитата (kovaldm @ 8.05.2011 - 15:50)
О! Где-то ранее есть вывод в поток. Или BOM мешает.
И не должно быть никаких пустых строк или пробелов перед <?php. Так же в подключаемых файлах не должно быть вывода или пустых строк "вне кода".

Пустых строк и пробелов нет.

Спустя 1 минута, 45 секунд (8.05.2011 - 19:04) kovaldm написал(а):
Кодировка какая?

Спустя 9 минут, 34 секунды (8.05.2011 - 19:13) Floyd написал(а):
Цитата (kovaldm @ 8.05.2011 - 16:04)
Кодировка какая?

utf-8

Спустя 13 минут, 54 секунды (8.05.2011 - 19:27) kovaldm написал(а):
С BOM или без? Если с ним, то отключай.

Спустя 2 минуты, 54 секунды (8.05.2011 - 19:30) Floyd написал(а):
Цитата (kovaldm @ 8.05.2011 - 16:27)
С BOM или без? Если с ним, то отключай.

Прошу прощения за глупый вопрос,но что есть ВОМ?

Спустя 4 минуты, 39 секунд (8.05.2011 - 19:35) kovaldm написал(а):
Цитата
Прошу прощения за глупый вопрос,но что есть ВОМ?

Почитай про юникод.

Спустя 8 минут, 17 секунд (8.05.2011 - 19:43) Игорь_Vasinsky написал(а):
Сессия и заголовок необходимо делать ло любого вывода, т.е. первыми строками до любого echo, print, html.

При этом ошибка, нотис проскочить успеет, т.к. сессия и хеадер -не дружат.

т.е. если первой строкой стартанёшь сессию - хеадер не средиректет, т.к. не заголовок не пошлётся.

если стартанёшь хеадер, то сессия не успеет стартануть, да даже еслиб успевала - то всё равно не стартанула бы, т.к. первой строкой стартанул редирект и у них будет конфуз.

как выход - использование буфер, или реирект на JS , а так как JS может быть отключён, то можно нарисовать ссылку для перехода wink.gif

Спустя 13 минут, 1 секунда (8.05.2011 - 19:56) Floyd написал(а):
Цитата (Игорь_Vasinsky @ 8.05.2011 - 16:43)
Сессия и заголовок необходимо делать ло любого вывода, т.е. первыми строками до любого echo, print, html.

При этом ошибка, нотис проскочить успеет, т.к. сессия и хеадер -не дружат.

т.е. если первой строкой стартанёшь сессию - хеадер не средиректет, т.к. не заголовок не пошлётся.

если стартанёшь хеадер, то сессия не успеет стартануть, да даже еслиб успевала - то всё равно не стартанула бы, т.к. первой строкой стартанул редирект и у них будет конфуз.

как выход - использование буфер, или реирект на JS , а так как JS может быть отключён, то можно нарисовать ссылку для перехода wink.gif

Ссылка не устраивает,нужно авто редирект делать.

Как вообще такая задача правильно реализовывается???Может я пошол не тем путем?

Вот собственно ТЗ:

На главной(index.php) странице есть кнопка "Личный кабинет".Когда человек на нее нажимает
загружается страничка(cabinet.php) c полями ввода логина и пароля.
И вот собственно последнее над чем ломаю голову.Если авторизация прошла успешно,загружается страничка(cabinetinfo.php) с данными пользователя,которые скрипт тянет с БД.


Спустя 10 минут, 10 секунд (8.05.2011 - 20:06) Игорь_Vasinsky написал(а):
Цитата
Если авторизация прошла успешно,загружается страничка(cabinetinfo.php) с данными пользователя,которые скрипт тянет с БД

ohmy.gif зачем каждый раз показывать профиль, что он не забал кто он? лучше просто делать вывод того что юзеру нужно, и что можно только авторизированному юзеру.

Спустя 4 минуты, 10 секунд (8.05.2011 - 20:10) kovaldm написал(а):
Не, там что-то должно идти первым, а что-то вторым.

Спустя 2 минуты, 6 секунд (8.05.2011 - 20:12) Игорь_Vasinsky написал(а):
если хеадер с редиректом - то сессия не стартанёт, только если хеадер с кодировкой - то проканает wink.gif

Спустя 15 минут (8.05.2011 - 20:27) Floyd написал(а):
Так как же мне решить эту проблему?

Спустя 1 минута, 50 секунд (8.05.2011 - 20:29) Игорь_Vasinsky написал(а):
почитай про использование буфера ob_flush() здесь есть тема - показано как решить проблему с зоголовками и сессия

Спустя 3 минуты, 10 секунд (8.05.2011 - 20:32) Floyd написал(а):
Цитата (Игорь_Vasinsky @ 8.05.2011 - 17:29)
почитай про использование буфера ob_flush() здесь есть тема - показано как решить проблему с зоголовками и сессия

Тоесть,получается что у меня не работает редирект из-за сессий ?

Спустя 24 минуты, 10 секунд (8.05.2011 - 20:56) Игорь_Vasinsky написал(а):
а у тебя нотисы не выскакивают?

Цитата
$_SESSION['name'] = $data['id_user']; 
header('Location: cabinetinfo.php');


$_SESSION['name'] == $data['id_user'];

Спустя 12 минут, 26 секунд (8.05.2011 - 21:09) Floyd написал(а):
Цитата (Игорь_Vasinsky @ 8.05.2011 - 17:56)
а у тебя нотисы не выскакивают?

Цитата
$_SESSION['name'] = $data['id_user'];  
header('Location: cabinetinfo.php');


$_SESSION['name'] == $data['id_user'];

Нет.Даже если я отключаю вообще сессии.1 ошибка остается "Warning: Cannot modify header information - headers already sent by",мол данные отправлены уже.На пробелы и пропуски уже проверил и Byte Order Mark тоже выключен.

Ппц просто(((

Спустя 5 минут, 29 секунд (8.05.2011 - 21:14) Игорь_Vasinsky написал(а):
Цитата
Warning: Cannot modify header information - headers already sent by


Цитата
Нет.Даже если я отключаю вообще сессии.


заголовок должен отправлятся до любого вывода.

прикрепика файл к посту.

Спустя 7 минут, 9 секунд (8.05.2011 - 21:22) Floyd написал(а):
Файл кабинета

Спустя 2 минуты, 42 секунды (8.05.2011 - 21:24) Floyd написал(а):
скрипты

Спустя 52 секунды (8.05.2011 - 21:25) Floyd написал(а):
скрипты

Спустя 2 минуты, 28 секунд (8.05.2011 - 21:28) Игорь_Vasinsky написал(а):
ты прикрепи файл в котором конфуз, т.е. не работает редирект

Спустя 11 минут, 1 секунда (8.05.2011 - 21:39) Floyd написал(а):
Цитата (Игорь_Vasinsky @ 8.05.2011 - 18:28)
ты прикрепи файл в котором конфуз, т.е. не работает редирект

enter.php

Спустя 14 минут, 1 секунда (8.05.2011 - 21:53) Игорь_Vasinsky написал(а):
у тя enter.php (а может и остальные тоже) сохранены с BOM, нужно без

Спустя 6 минут, 17 секунд (8.05.2011 - 21:59) Floyd написал(а):
Цитата (Игорь_Vasinsky @ 8.05.2011 - 18:53)
у тя enter.php (а может и остальные тоже) сохранены с BOM, нужно без

Странно,я открывал нотпадом++ вроде нет ВОМ...

Спустя 3 минуты, 11 секунд (8.05.2011 - 22:02) Игорь_Vasinsky написал(а):
скачай на irbis-team.ru прогу для удления bom, или разберись со своим нотпадом wink.gif

Спустя 3 минуты, 57 секунд (8.05.2011 - 22:06) Floyd написал(а):
Цитата (Игорь_Vasinsky @ 8.05.2011 - 19:02)
скачай на irbis-team.ru прогу для удления bom, или разберись со своим нотпадом wink.gif

Точно,2 скрипта было с ВОМ.Теперь везде "кодировать без ВОМ" +пересохранил,но проблему не решило(.Ошибка так и осталась.

Спустя 2 часа, 57 минут, 37 секунд (9.05.2011 - 01:04) Игорь_Vasinsky написал(а):
connection.php тоже подправил? он у тебя в enter.php инклудится wink.gif

Спустя 1 день, 22 часа, 5 минут, 15 секунд (10.05.2011 - 23:09) Floyd написал(а):
Цитата (Игорь_Vasinsky @ 8.05.2011 - 22:04)
connection.php тоже подправил? он у тебя в enter.php инклудится wink.gif

Все подправил.Вот вылаживаю повторно.

Ребята помогите пожалуйста решить проблему.Все что мог перепробовал уже.

Спустя 2 минуты, 11 секунд (10.05.2011 - 23:11) Floyd написал(а):
второй файл. connection.php запихнул в enter.php

Спустя 5 минут (10.05.2011 - 23:16) Kumirska написал(а):
utf-8 с BOM может повлиять,попробуй через блокнот сохранить скрипт убрав галочку с бума,мне помогало от ошибки ...already sent

Спустя 10 минут, 43 секунды (10.05.2011 - 23:27) Floyd написал(а):
Цитата (Kumirska @ 10.05.2011 - 20:16)
utf-8 с BOM может повлиять,попробуй через блокнот сохранить скрипт убрав галочку с бума,мне помогало от ошибки ...already sent

Уже пробовал,спасибо.

Спустя 1 день, 19 часов, 55 минут, 6 секунд (12.05.2011 - 19:22) Floyd написал(а):
Все уже свел к минимуму.Вот одна страничка при загузке которой просто должен сработать редирект,но даже так отказывается работать.Одна и таже ошибка "Warning: Cannot modify header information - headers already sent by".

ОЧЕНЬ прошу,просмотрите пожалуйста файлик и скажите где ошибка.Сколько времени уже прошло,а я так и не могу разобраться.

Спустя 2 часа, 58 минут, 16 секунд (12.05.2011 - 22:20) Floyd написал(а):
Цитата
utf-8 с BOM может повлиять,попробуй через блокнот сохранить скрипт убрав галочку с бума,мне помогало от ошибки ...already sent


Убирал таким способом + прогой antibom.Безрузультатно((((

Спустя 11 часов, 48 минут, 23 секунды (13.05.2011 - 10:09) Floyd написал(а):
ап
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.