|
|
|
| Блин,5 часов уже сношаюсь,помогите кто нибудь...Авторизация,проверка кук...При запуске со стандартного браузера телефона пишет:'куки не включены...',с оперы-мини уходит в длительное ожидание ответа сервера,т.е не загружается страница,а просто "Подождите...".Установил в скрипте в начале set_time_limit(3)-не прерывает...Такое впечатление,что скрипт в состоянии постоянного редиректа | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 06:17)
| |
if(!isset($_COOKIE['rth'])){$_COOKIE['rth']=-1;}
$session=$_COOKIE['rth'];
if(($session!=-1)&(!preg_match("/^[0-9a-z]{16}$/i",$session))){$session='';}
.....
if($session==-1)
{
if(isset($_GET['tcc'])){$err='У вас на телефоне выключен прием кук...<br/><br/>Включите куки и <a href="'.$adr.'">вернитесь обратно</a>';header('Location:http://'.$_SERVER['SERVER_NAME'].'/error/error.php?err='.urlencode($err));exit;}
elseif(isset($_SERVER['QUERY_STRING'])){$adr.='&';}
else{$adr.='?';}
|
| |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 06:28)
| | setcookie('rth',0,time()+10000);
header('Location:'.$adr.'tcc=1');exit;
} | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 06:35)
| | Или вообще забить на них и прикреплять имя сессии к url..? А то какая-то это мутная вещь...Чуть где вывод проскочил-уже не установятся,то их хрен установишь,то хрен удалишь...Вон на ОпереМини сколько ни колупался,так и не получается у меня их удалять :-( | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 10:33)
| | Вы не можете удалить Куки ?
можно удалять например так
setcookie('cook','value',0);
|
Главное, чтобы эти заголовки устанавливались до любого вывода на странице | |
|
|
|
|
|
|
|
для: Sl
(20.02.2007 в 11:03)
| | Да пробовал по разному,но сейчас больше волнует вопрос,почему не могу их установить :-) Насчет передачи только через глупость сморозил-а если человек решит зайти на сайт через 3 дня,что ж ему,номер сессии запоминать,чтобы в конец адреса добавить ...Значит,надо добивать куки ...Кто нибудь,просмотрите вышележащий код свежим взглядом,может,я зациклился и чего-то очевидного не вижу в нем ? | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 11:15)
| | С горем пополам определил,что почему-то не выставляются куки...Но ПОЧЕМУ ??? ЧТО В ЭТОМ КОДЕ НЕ ТАК ?????? | |
|
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 13:25)
| | В браузере включена поддержка cookie? Cookie с других сайтов устанавливаются нормально? | |
|
|
|
|
|
|
|
для: cheops
(20.02.2007 в 16:02)
| | Брат,пожизненный тебе респект за то,что хоть заглянул...Да,в браузере включено,проверял неоднократно,авторизация других сайтов не теряется...Ладно,код большой,писал сам,так что кроме меня,вряд ли кто захочет разбираться... | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 16:14)
| | Ошибок вроде "Warning: Cannot modify header information - headers already sent by" нигде не проскакивает? Закомментируйте переадресацию
setcookie('rth',0,time()+10000);
//header('Location:'.$adr.'tcc=1');exit;
|
Экран остаётся чистым? | |
|
|
|
|
|
|
|
для: cheops
(20.02.2007 в 16:20)
| | Да нет,насчет ошибок,так я до полной отладки скрипта всегда выставляю E_ALL даже без столь любимого почему-то народом ~E_NOTICE :-) Ты хочешь сказать,что редирект колбасит ? Вот я захожу с родного браузера и с ОперыМини,и что удивляет-разная реакция...Родной пишет:куки не установлены,а опера уходит в глубокий завис...Вот что меня интригует | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 16:38)
| | \m/ (о) (о) \m/ | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 16:38)
| | Cheops,если сочтешь нужным и будет время,зайди пожалуйста на http://www.ralph.in.ua с компьютера и ответь,что комп скажет на это...И так,с точки зрения теории,скажи,верен ли в принципе,тот участок кода,который я прописал ? Если да,то уже легче,буду искать в остальном коде...Понимаешь,брат,весь вопрос в том,что компа нет и я все пишу с телефона,и у меня просто нет возможности прогнать через Денвер или что-то похожее,все только онлайн...Я уже трафа и времени убил нереально... | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 17:05)
| | Зашёл, ответил - что должно произойти, на каком этапе устанавливается cookie (у себя её тоже не вижу). | |
|
|
|
|
|
|
|
для: cheops
(20.02.2007 в 17:42)
| | Так,проснувшись-всем глубокие извинения...Бессонная ночь над долбаной программой,игнор моей темы,1.5 пива и ...в общем,Остапа понесло... | |
|
|
|
|
|
|
|
для: Ralph
(20.02.2007 в 21:14)
| | Вот о чем подумал-а никакие настройки сервера не могут такое вызвать ? | |
|
|
|
|
|
|
|
для: Ralph
(21.02.2007 в 00:18)
| | Нет, как правило, никакие настройки сервера не влияют на cookie. Сервер лишь отправляет HTTP-заголовок клиенту с просьбой установить cookie, эту просьбу клиент может принять, может отклонить. Если он принимает её - он с каждым следующим запросом шлёт HTTP-заголовок со значением, которое "попросил" его установить сервер. | |
|
|
|
|
|
|
|
для: cheops
(21.02.2007 в 00:23)
| | Вот еще мысль...Могут ли возникать проблемы из-за использования в header'ax разных адресов,т.е. www.ralph.in.ua Или ralph.in.ua ? Для перехода на страницу это пох,а вот для кук... | |
|
|
|
|
|
|
|
для: Ralph
(21.02.2007 в 02:01)
| | Да, запросто - это частая проблема - переходы должны быть везде одниковые (либо с www, либо без www). Если вы сейчас сидите под www.softtime.ru/forum, набирите sottime.ru/forum или соответственно наоборот - будете свидетелем как вы станете незарегитстрированным пользователем. | |
|
|
|
|
|
|
|
для: cheops
(21.02.2007 в 02:15)
| | Вы извините,что съезжаю с темы,но не люблю плодить темы-кло(у)ны,поэтому помогите разобраться в некоторых неясностях и закрывайте нах тему... Не вызовет ли ошибку вторая часть этой конструкции,если переменная будет не установлена if((!isset($var))or($var=='')) или варианты (empty($var)) или (!$var) ??? Я все время боюсь,что пхп скажет:'как я тебе,блин,сравню переменную с '',если ее не существует !!!' и поэтому все время использую конструкцию ...if(!isset($var)){$var='';} if($var=='')... | |
|
|
|
|
|
|
|
для: Ralph
(21.02.2007 в 02:57)
| | Notice - это лишь совет, это не критическая ошибка, на всех хостингах вывод Notice-сообщений отключён. Вы тоже можете понизить чувствительность интерпретатора. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE
|
Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
|
После чего проверять переменную по человечески
или
Советам хорошо следовать до тех пор, пока они не начинают снижать читабельность кода. | |
|
|
|
|
|
|
|
для: cheops
(21.02.2007 в 03:04)
| | Просто как-то не люблю игнорировать ошибки,но попробую :-) И вопрос насчет путей...Никак с ними не разберусь... там,где работает <a href="/total/session.php"> или header('Location:/total/session.php'),не работает include('/total/session.php') ,поэтому везде использую конструкцию Include($_SERVER['DOCUMENT_ROOT'].'/total/session.php') .Проясните,плз,этот вопрос,где какие пути можно использовать ? | |
|
|
|