ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Не могу разобраться с кукисами
  #1  
Старый 02.05.2006, 18:47
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию Не могу разобраться с кукисами

Совсем каша в голове
В верху индекс.пхп стоит такой код:
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 вообще заточен лишь под осла и фарефокз, где найти более вменяемую прогу?
 
Ответить с цитированием

  #2  
Старый 02.05.2006, 19:04
Аватар для EST a1ien
EST a1ien
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме:
1269624

Репутация: 114
Отправить сообщение для EST a1ien с помощью ICQ
По умолчанию

Цитата:
И ещё небольшой вопрос - где искать куки Оперы 8.54?
Инструменты -> Быстрые настройки -> Site Preferences -> Cookies
И в опере и так встроен редактор кук.
 
Ответить с цитированием

  #3  
Старый 02.05.2006, 19:05
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

А не проще ли?
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'];

Но авторизация у тебя ну очень навинчиная, можно все ГОРАЗДО проще, понятнее и эффективнее. Хотя дело твое
 
Ответить с цитированием

  #4  
Старый 03.05.2006, 20:27
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

Респект, Trinux!
После добавления строк
PHP код:
 $HTTP_COOKIE_VARS['username']=$HTTP_SESSION_VARS['username']; 
    
$HTTP_COOKIE_VARS['userstatus']=$HTTP_SESSION_VARS['userstatus']; 
мой кривой и глючный код заработал как нада. Пока оставлю так, лишь бы работало,
допишу основу двигла и затем буду апгрейдить потихоньку.

ЗЫ где ты учился программированию?
ЗЫЫ 2 EST a1ien:
я знаю про редактор куков. меня интересует хранятся ли они где-нить в виде файлов как у осла?
 
Ответить с цитированием

  #5  
Старый 03.05.2006, 20:33
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Цитата:
ЗЫ где ты учился программированию?
мне в 5 подарили спекрум. В 7 лет его отобрали за то, что я написал прогу, которая решала за меня домашку по математике... не знаю где научился... само как-то научилось =)

P.S. совету купить книги по алгоритмизации (а лучше взять в библиотеки. Годов примерно 1990-1992), обязательно "Основы програмиирования" и вообще любую литературу про языки программировния конца 80-ых, начала 90-ых годов.
 
Ответить с цитированием

  #6  
Старый 03.05.2006, 20:37
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

надеюсь поступлю этим летом в универ на кодера %)
тогда всё и изучу
а так я дома книжки и по С и по пхп, html, javascript читал.
щас купил за 500р. здоровую по mysql = )
 
Ответить с цитированием

  #7  
Старый 03.05.2006, 20:47
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Книги что и инст - учат быть банальным. Праквильно, как ты заметил, кодером. А программирование - совсем другая тема
 
Ответить с цитированием

  #8  
Старый 04.05.2006, 17:14
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

Цитата:
учат быть банальным
ну по-крайней мере они хоть чему то учат. я давно понял что дома не стану кодером сам, к тому же времени совсем нет что-то самостоятельно изучать.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу удалить DrWeb что делать ? Vandal Защита ОС: вирусы, антивирусы, файрволы. 7 09.04.2006 10:31
Помогите разобраться со скриптом xlns PHP, PERL, MySQL, JavaScript 4 08.03.2006 08:49
Не могу найти хеш в базе phpBB 2.0.19 _lolik_ Форумы 7 31.01.2006 13:14
Помогите разобраться с угоном Аськи seeattact ICQ 5 17.01.2006 03:14
Могу взломать сайт, чат, мыло форум, вообщем все что ломается!!!За $$$ Макс307 Болталка 19 17.12.2005 20:00



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ