$_SESSION (подводные камни...)

Alone

Новичок
$_SESSION (подводные камни...)

(register_globals off)

Имеем отрывок кода:
PHP:
File index.php
--------------------
session_start();
require_once ("etc.php");
...
if(trim($_POST['mode'])=="addr"){
  include_once ("addrMenu.php");
PHP:
File addrMenu.php
$_SESSION=tovar();
$str=$_SESSION['str'];
$_SESSION['str']=null;

  $body.="<table border=0 width=\"100%\" >
       <tr>
           <td width=\"50%\" valign=\"top\">
               ".$str."
           </td>
           <td width=\"50%\" valign=\"top\">
               $a
           </td>
       </tr>
   </table>";

function tovar(){
  global $_GET, $_SESSION;
  $tovarMenu=$_SESSION['tovarMenu'];
  $currnetLevel=$_SESSION['currentLevel'];
  $_SESSION['a']="asd";
... часть кода пропущу
  $_SESSION['tovarMenu']=$tovarMenu;
  $_SESSION['currentLevel']=$currentLevel;
  $_SESSION['str']=$str;
   на этом этапе имеем честно заполненную переменную $_SESSION
  return $_SESSION;
}
В результате, в сессию ничего не кладется...

:mad:
Где грабли???
 

Alone

Новичок
Дык, в индекс.пхп
см. верхняя часть кода (File index.php)
 

Фанат

oncle terrible
Команда форума
да я уже вижу.
у тебя какая-то каша.

проблема, похоже, не с сессиями, а с алгоритмом.
ты скажи сначала - сессии, на простом тестовом примере - работают?
 

Alone

Новичок
да. сессии работают.
а грязный код - это уже от безысходности... Не пойму, где туплю...

-~{}~ 08.09.04 16:20:

Автор оригинала: Фанат
это что такое?
Дык, см. функция товар()
 

Фанат

oncle terrible
Команда форума
как ты определил, что "в сессию ничего не кладется"?
В другом скрипте переменные из сессии видны?
в другой скрипт ИД сессии передается?


ЕСЛИ В СКРИПТЕ ПРОИСХОДЯТ ОШИБКИ - ТЫ ИХ ВИДИШЬ?
 

Alone

Новичок
Могу вопрос немного по другому задать:
почему вызвав функцию, и объявив внутри неё (global $_SESSION;) данные в сессию не ложатся???

-~{}~ 08.09.04 16:24:

Если в коде (не в функции) написать что то типа
$_SESSION['a']="asd";
то это в сессию кладется.

-~{}~ 08.09.04 16:26:

И что значит "в другом скрипте" ???
сессия у меня стартует в индекс.пхп
а по условиям - инклудятся необходимые файлы.
тоесть выполняется ОДИН скрипт
 

Фанат

oncle terrible
Команда форума
возможно, как раз из-за твоих дурацких перестраховок.
выкини из скрипта

global $_GET, $_SESSION;
и
return $_SESSION;

а $_SESSION=tovar(); замени на tovar();

-~{}~ 08.09.04 16:28:

Alone
"в другом скрипте" означает то, для чего сессии, вообще-то, и были придуманы.
Вот тебе они зачем?
 

Alone

Новичок
Тише, тише... Не горячись!

Ты хочешь сказать

function a(){

$_SESSION['a']="asd"
}
сработает???
 

Фанат

oncle terrible
Команда форума
С чего ты взял, что я горячусь?
Да, именно это я и хочу сказать.
 

Alone

Новичок
Гм... Вообще то с этого и началось, когда я обратил внимание, что $_SESSION не видна из функции.
 

Alone

Новичок
Всем Спасибо, разобрался...
грамматическая ошибка была...
внутри функции использовал $_SESION
 

Фанат

oncle terrible
Команда форума
Alone
Знаешь, я поймал себя на том, что хочу написать пркатически слово в слово то, что написано в разделе про ошибки сессий в PHP FAQ: Сессии. Подробное описание работы и объяснение механизма.

А именно - значит, проблема либо в твоей версии пхп (что врядли, если глобалсы - офф), либо - в банальной опечатке.

-~{}~ 08.09.04 16:45:

к вопросу о...
 

fixxxer

К.О.
Партнер клуба
Пользуйся редактором с нормальной подсветкой :)

-~{}~ 08.09.04 16:59:

Фанат
оффтоп: не засунешь bbкоды на phpfaq.ru/bbcode в <input>-ы? для пользователей мозиллы и оперы =)

выделять мышкой уж очень запарно.
 
Сверху