Загадосная проблема с авторизацей на двух страницах.

Кирилл А.

Новичок
Загадосная проблема с авторизацей на двух страницах.

Странная история.
На главной странице index.php есть формочка, заполняя которую переменные user и pass передаются скрипту и сравниваются с имеющимися в базе. Тут же пишется печенька:
....
if (mysql_num_rows($result) != 1){
print "Неправильный логин и/или пароль!";}
else {
setcookie( "login" , $login , time()+3600,'/total/');
setcookie( "password" , $password , time()+3600,'/total/');
Header("Location: index.php");

на главной - index.php стоит скирпт проверяющий наличие печеньки:
if(!isset($_COOKIE['login'])){
print "<form method='post' action='auth.php'>
...
}
print "<div class=content align=center>Вы авторизованы как: <b><i>";
print $_COOKIE['login'];
print "</i></b><br>";
print "<a href='logout.php'>Выйти</a></div>";
}

Для главной работает - отлично.
Странность обнаруживается когда такая же печенька проверяется на странице usercp.php.
Код проверки печеньки - тот же. Печенька не находится.

Что хотелось бы: передовать даные(логин и пасс) по все страницам сайта однажды введя данные =)
 

Фанат

oncle terrible
Команда форума
а usercp.php - это, конечно же, всем известный файл. достаточно упомянуть его название - и сразу все поняли, о чем идет речь.

-~{}~ 18.12.04 02:18:

Кирилл А.
Возможно, тебе не понравится мой ответ.
Но другой все равно дать невозможно.
Поскольку здесь могут ответить, как исправить конкретную ошибку.
Но найти её - ты должен сам. Не потому, что здесь все такие ленивые и бездушные, а потому, что ктоме тебя никто не знает, как работают твои сркипты и никто их не запустит.
Поэтому, тебе надо почитать что-нибуьд в интернете про то, что такое куки, и как они работают, а так же:
PHP FAQ: Ничего не работает! Что делать???
и
PHP FAQ: Самые основы. Просмотр обмена HTTP заголовками
 

Кирилл А.

Новичок
Фанат, спасибо . Читал, много думал.

В usercp.php ничего особенного. вывод из базы данных пользователя.
Проблема в том, что введенные на главной странице данные (логин, пасс) и соотвественно успешно записанная печенька не подхватывается.... т.е. тот же код
if(!isset($_COOKIE['login'])){
print "<form method='post' action='auth.php'>
...
}
print "<div class=content align=center>Вы авторизованы как: <b><i>";
print $_COOKIE['login'];
print "</i></b><br>";
print "<a href='logout.php'>Выйти</a></div>";
}
который на главной работает нормально, на usercp.php не работает. Почему - не понимаю, поэтому и обращаюсь за помощью.
 

MaxGal

Guest
Передавай идентификатор сессии вместе с ссылкой
 

Фанат

oncle terrible
Команда форума
здесь могут ответить, как исправить конкретную ошибку.
Но найти её - ты должен сам
не работает. Почему - не понимаю, поэтому и обращаюсь за помощью.
Читал, много думал.
Не заметно.

-~{}~ 18.12.04 02:41:

тебе надо почитать что-нибуьд в интернете про то, что такое куки, и как они работают,
ты знаешь, что означает этот параметр? И для чего он тебе нужен?
 

Кирилл А.

Новичок
Originally posted by Фанат
Не заметно.

-~{}~ 18.12.04 02:41:



ты знаешь, что означает этот параметр? И для чего он тебе нужен?
знаю. эта кука действительна для каталога /total/ и всех каталогов внутри него. Это специально. да.

Фанат, ты меня как то разочаровал. У тебя бывают сообщения двух типов: либо с искрометным садо-юмором =), либо наводящие на правильные мысли, а тут.... хех.
 

chin

Guest
А ты $_COOKIE заекстракти в переменные... типа к примеру: extract($_COOKIE, EXTR_PREFIX_ALL, "C");
И тогда $_COOKIE['login'] заекстрактится в $C_login...
Только это надо делать НЕ в функции, а, к примеру, в начале скрипта... А потом в usercp, если у тебя где-то в функции проверяет - не забудь обьявить их глобальными: global $C_login, $C_pass - если кук и небыло, то оно определит их как нулевыми (NULL). А если они, эти куки, есть, то значит оно их заекстрактило, а значит в них что-то есть. И это что-то попадет в функцию, да и куда угодно.
Создай, к примеру, extract.inc где будет оно у тебя екстрактить, и посто в каждый скрипт рекварь в начале.
 
Сверху