Совсем каша в голове В верху индекс.пхп стоит такой код: PHP: session_start(); if (!isset($HTTP_COOKIE_VARS['userstatus']) && !isset($HTTP_COOKIE_VARS['username'])) { setcookie("userstatus", 1); setcookie("username", 'guest'); } if (!isset($HTTP_SESSION_VARS['userstatus']) && !isset($HTTP_SESSION_VARS['username'])) { $HTTP_SESSION_VARS['userstatus'] = $HTTP_COOKIE_VARS['userstatus']; $HTTP_SESSION_VARS['username'] = $HTTP_COOKIE_VARS['username']; } if (isset($HTTP_SESSION_VARS['im_login']) && $HTTP_SESSION_VARS['im_login'] == 1) { setcookie("userstatus", $HTTP_SESSION_VARS['userstatus']); setcookie("username", $HTTP_SESSION_VARS['username']); } // не знаю как по другому обновить куки при введении пароля и логина на странице log in. // потому что пишет что другие хидеры уже отправлены, а сайт модульный - страница log in // инклудится в тело index.php. Я сделал так что при логине вводятся логин и пароль, проверяются на соответствие, а затем вносятся в массив // сессий: // login.php: // $HTTP_SESSION_VARS['username'] = $username; // $HTTP_SESSION_VARS['userstatus'] = $userstatus; // $HTTP_SESSION_VARS['im_login'] = 1; // на главной странице стоит проверка. если она обнаружит включённой эту опцию, то автоматически обновит куки. #------------------------------------- echo ("Cookie [<b>".$HTTP_COOKIE_VARS['username']." - ".$HTTP_COOKIE_VARS['userstatus']."</b>]<br />"); echo ("Session [<b>".$HTTP_SESSION_VARS['username']." - ".$HTTP_SESSION_VARS['userstatus']."</b>]<br />"); В итоге, когда я вхожу на сайт, вижу: Cookie [guest - 1] Session [guest - 1] Жму логин, ввожу логин-пароль, получаю: Cookie [guest - 1] Session [admin - 3] Обновляю страницу: Cookie [admin - 3] Session [admin - 3] Вот это мне и нужно было с самого начала - чтобы постоянно было admin - 3 Почему при входе на сайт срабатывает условие if (!isset($HTTP_COOKIE_VARS['userstatus']) && !isset($HTTP_COOKIE_VARS['username'])) как будто этих кук и не существовало? Чо за мазафака? Почему сессии задаются сразу, а куки после обновления? И ещё небольшой вопрос - где искать куки Оперы 8.54? Куки Едитор 1.9.1 вообще заточен лишь под осла и фарефокз, где найти более вменяемую прогу?
Инструменты -> Быстрые настройки -> Site Preferences -> Cookies И в опере и так встроен редактор кук.
А не проще ли? PHP: <? if(isset($auth)){unset($auth);} session_start(); session_register('auth'); if(!isset($auth['login'])){ if(isset($login) && isset($password) && ($login!='' && $password!='')){ /* Проверка правильности логина и пароля. Если верно - то пишем в $auth['login'] и $auth['status'] значения из БД, иначе пишем опять же $auth['login']='quest'; $auth['status']='1';*/ }else{ $auth['login']='quest'; $auth['status']='1'; } } print_r($auth); ?> <!-- форма авторизации --> А насчет твоей проблемы.... смотри PHP: if (isset($HTTP_SESSION_VARS['im_login']) && $HTTP_SESSION_VARS['im_login'] == 1) { setcookie("userstatus", $HTTP_SESSION_VARS['userstatus']); setcookie("username", $HTTP_SESSION_VARS['username']); } Вот ты пишешь куки. А выводишь их на страницу с помощью переменных типа $_COOKIE, которые являются переменными окружения PHP и генерятся не каждый раз при обращении к setcookie() а при каждом запуске php или mod_php в апаче. Т.е. грубо говоря после рефреша страницы. Решение достаточно простое: PHP: if (isset($HTTP_SESSION_VARS['im_login']) && $HTTP_SESSION_VARS['im_login'] == 1) { setcookie("userstatus", $HTTP_SESSION_VARS['userstatus']); setcookie("username", $HTTP_SESSION_VARS['username']); $HTTP_COOKIE_VARS['username']=$HTTP_SESSION_VARS['username']; $HTTP_COOKIE_VARS['userstatus']=$HTTP_SESSION_VARS['userstatus']; } Но авторизация у тебя ну очень навинчиная, можно все ГОРАЗДО проще, понятнее и эффективнее. Хотя дело твое
Респект, Trinux! После добавления строк PHP: $HTTP_COOKIE_VARS['username']=$HTTP_SESSION_VARS['username']; $HTTP_COOKIE_VARS['userstatus']=$HTTP_SESSION_VARS['userstatus']; мой кривой и глючный код заработал как нада. Пока оставлю так, лишь бы работало, допишу основу двигла и затем буду апгрейдить потихоньку. ЗЫ где ты учился программированию? ЗЫЫ 2 EST a1ien: я знаю про редактор куков. меня интересует хранятся ли они где-нить в виде файлов как у осла?
мне в 5 подарили спекрум. В 7 лет его отобрали за то, что я написал прогу, которая решала за меня домашку по математике... не знаю где научился... само как-то научилось =) P.S. совету купить книги по алгоритмизации (а лучше взять в библиотеки. Годов примерно 1990-1992), обязательно "Основы програмиирования" и вообще любую литературу про языки программировния конца 80-ых, начала 90-ых годов.
надеюсь поступлю этим летом в универ на кодера %) тогда всё и изучу а так я дома книжки и по С и по пхп, html, javascript читал. щас купил за 500р. здоровую по mysql = )
Книги что и инст - учат быть банальным. Праквильно, как ты заметил, кодером. А программирование - совсем другая тема
ну по-крайней мере они хоть чему то учат. я давно понял что дома не стану кодером сам, к тому же времени совсем нет что-то самостоятельно изучать.