сессия не работает в opera

mixwell

Новичок
сессия не работает в opera

Добрый вечер. Сталкнулся со следущей проблемой. Переменные сессии создаваемые после авторизации работают нормально.
Так же создаются в самой програме для тех.нужд, но в они не работают в opera, но работают в эксплорере. В связи с чем это может быть связано?
 

mixwell

Новичок
Вот, собственно что получилось:
1. после включения ini_set('display_errors',1); error_reporting(E_ALL); програма начала выдавать следующие предупреждения:

PHP:
  Notice: Undefined index: auth in /homepages/11/d221807910/htdocs/inc/up.inc on line 112

  Notice: Undefined index: idmen in /homepages/11/d221807910/htdocs/inc/authorizationInc.inc on line 15

  Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homepages/11/d221807910/htdocs/inc/getUserInfoInc.inc on line 4

   Notice: Undefined property: email in /homepages/11/d221807910/htdocs/inc/authorizationInc.inc on line 67
что соответственно блокирует редирект(так как заголовок отправляется при выводе предупреждений)
PHP:
 Warning: Cannot modify header information - headers already sent by (output started at /homepages/11/d221807910/htdocs/inc/up.inc:112) in /homepages/11/d221807910/htdocs/inc/authorizationInc.inc on line 69
Скажите, лучше забить на эти предупреждения и отключить информирование об ошибках или все же разобраться с неопределенными предупреждениями?

ПО поводу сессии в середине кода. В середине кода у меня создается переменная сессии(массив), которая служит временным хранилищем информации об ошибках, сразу после сбора информации происходит редирект, проверка переменных сессии и данные переменные убиваются. Ну дак вот у меня на компьютере под оперой(8.1, знаю что старая) и под эксплорером все работает нормально(так как должно). переменная сессии делает свою работу и информирует об ошибках, но на компьютере моего друга через эту же оперу(8.1) данная работа не выполняется, хотя под эксплорером работает нормально. Сразу оговорюсь, что куки включены!
Уважаемые, более опытные программисты, помогите, или натолкните на мысль и подскажите как лучше быть с неопределенными переменными, типа:
PHP:
Notice: Undefined index: idmen in /homepages/11/d221807910/htdocs/inc/authorizationInc.inc on line 15
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Скажите, лучше забить на эти предупреждения и отключить информирование об ошибках или все же разобраться с неопределенными предупреждениями?
Вы хотите програмиировать?
- ДА................(разобраться с неопределенными предупреждениями)
- НЕТ................(забить на эти предупреждения)

Нужное подчернуть
 

Nelius

кипарис во дворе
ИМХО Лучше всего писать код так чтобы не было не Warnings не Notices.
Про FAQ вам правильно говорят, не поленитесь почитать.
 

mixwell

Новичок
читал. Я знаю что если заголовок отправляется раньше сессии, то сессия работать не будет. Предупреждения выдаются на другой странице. Я вообще интересуюсь нужно ли разбираться с неопределенными переменными. На той странице где проблема с сессией там ни чего не выводиться до сессии!! просто у меня работает нормально, у знакомого - нет.
 

mixwell

Новичок
Спасибо, парни. Буду разбираться с предупреждениями.. А вот с сессией не понятно как-то:(
 

mixwell

Новичок
спасибо, функцию isset знаю хорошо и использую. Ей и буду лечить предупреждения, но вот с сессией как бороться..
 

Фанат

oncle terrible
Команда форума
ПО поводу сессии в середине кода. В середине кода у меня создается переменная сессии(массив)
да хоть в конце.
стартовать сессию надо до любого вывода в браузер.
а переменную вписывать можно где угодно.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
да сессия стратует в начале естественно...
А вот врать нехорошо.
Warning: Cannot modify header information - headers already sent by (output started at /homepages/11/d221807910/htdocs/inc/up.inc:112) in /homepages/11/d221807910/htdocs/inc/authorizationInc.inc on line 69
-~{}~ 09.11.07 22:57:

частая ошибка (даже если нет вывода)
пробел или перевод строки после/до <??>
 

mixwell

Новичок
это редирект, и на этой странице сессиия не используется. Я просто привел эту часть кода чтобы уточнить нужно ли бороться с неопределенными переменными. Приношу извенения, что немножко запутал...
то ФАНАТ, спасибо, буду писать туда.
Короче всем thanks! Пойду разбиратсья...

-~{}~ 10.11.07 14:29:

вот какая для меня мистика происходит. Сразу оговорюсь, что в INTERNET EXPLORERE работает нормально.
система обнаружения ошибок работает через раз. Данная система основана на том, что при появлении ошибки, она сохраняется в массив сессии,
например:
PHP:
 if (empty($nameN))      $_SESSION['errorRep'][1] = "<font color=red>you dont enter a name.</font><br>";
if (empty($questData))  $_SESSION['errorRep'][2] = "<font color=red>you dont enter a question. </font><br>";
после всех проверок я проверяю были ли ошибки. Если были, то тогда произвожу редирект, если нет, то выполняю необходимые действия:
PHP:
                      if (empty($_SESSION['errorRep']))
{
        произвожу необходимые действия
}
else
{
                       header("Location: http://www.com/index.php?part=7");
                       exit;
}
Далее после редиректа произвожу проверку(там куда средиректил скрипт):
PHP:
                          if (isset($_SESSION['errorRep'] ))
{
            foreach($_SESSION['errorRep'] as $errorRepPR)  $OUTPUT_INFO .= $errorRepPR;
           unset($_SESSION['errorRep']);
 }
elseif (isset($_SESSION['notErrorRep'] ))
{
             $OUTPUT_INFO .= "<font color=#4b730b>You send your question. Our info-center ack on this whith 1 day. Thank You.</font>";
             unset($_SESSION['notErrorRep']);
}

Проблема заключается в следущем:
Проблема появляется только в opera. версия 8.01. Более новые пока не проверял.
Когда 1 первый раз заходишь на страницу, где находится форма, которая будет проверятся вышеуказанным образом, нажимаешь на submit(не заполняя поля), и скрипт должен выдать(в соответствии с вышеуказанным алгоритомом проверки) ошибки, но этого не происходит!! Когда второй раз пробуешь повторить процедуру, то все работает как должно(т.е. ошибки выдаются). После многократного повторения процедуры все работает нормально. Но когда заходишь на эту страницу снова, и пробуешь без введеных данных нажать на submit, то ни каких ошибок не выводится. Так же у меня есть еще одно место на сайте, где производится проверка ошибок по этому-же алгоритму и используется тоже название переменной сессии(
PHP:
$_SESSION['errorRep'][$n]
).И бывает так, что вначале зашел на одну страницу, проверил работу формы, ошибок не появилось, потом захожу в другой раздел формы, где проверка происходи по этому-же алгоритму, сразу же появляются ошибки из другой формы(т.е. переменная не убивается через unset($_SESSION['notErrorRep']). Иногда после авторизации скрипт проверки создает переменные сессии, редиректит в нужное место, но скрипт куда-то девает переменные авторизации сессии.

Короче сессии, то не создаются, то не удаляются... Я бы конечно думал на свои руки, но explorer все делает правильно. Я коненчо не гуру и не супер-мастер, но как работают сессии знаю. Может версия opera дырявая, теряет сессии(куки).


.Пожайлуста, помогите!!!! Буду сердечно благодарен! Просто дело очень важное. Всем большое спасибо!
 
Сверху