2012-09-25 5 views
1

У меня есть две страницы. На одной странице я добавляю массив к $_SESSION. На второй странице я читаю массив (успешно), а затем unset этот массив от $_SESSION.Сетчатый массив PHP продолжает меняться

Что происходит, однако, что вторая страница показывает разные значения, чем первая страница, хранящаяся в сеансе, и это заставляет меня думать, что первая страница вызывается снова и снова, но как это может быть, если я нахожусь сеанс и не перезагрузка страницы снова сама?

Что я делаю неправильно? Спасибо

EDIT: Забыл упомянуть, что второй скрипт запрашивается флеш-файлом на веб-сайте. Флэш-файл имеет идентификатор сеанса как один из его параметров, а затем отправляет его во второй скрипт для загрузки правой сессии (часть session_id($_REQUEST['token']);).

Page 1:

$_SESSION['HEADER_MODEL'] = getModelForHeaderVideo(); 
/* 
    [HEADER_MODEL] => Array 
     (
      Yes these are just random numbers (for testing) 
      [modID] => 303768959 
      [modUsername] => 347073152 
     ) 
*/ 

Page 2:

<?php 
     session_id($_REQUEST['token']); 
     session_start(); 

     header('Content-Type: text/html; charset=utf-8'); 

     if (!isset($_SESSION['HEADER_MODEL']['modID']) || (trim($_SESSION['HEADER_MODEL']['modID']) == '')) { 
       echo "modID=0"; 
     } else { 
       echo "&modID={$_SESSION['HEADER_MODEL']['modID']}&modUsername={$_SESSION['HEADER_MODEL']['modUsername']}"; 
       unset($_SESSION['HEADER_MODEL']); 
     } 
?> 
+2

я думаю, что проблема с 'session_start()' ..Why вы начинаете новую сессию на странице 2? –

+1

Знаете ли вы, что делает 'session_id'? – Jon

+0

Прошу прощения. Я забыл важную информацию. Второй файл запрашивается флеш-фильмом для получения значений. Я отправляю идентификатор сеанса во второй файл для загрузки того же сеанса. Я видел это решение где-то вчера. Я добавил его к исходному вопросу. – pilau

ответ

1

Пожалуйста, обратитесь к документации PHP

Примечание: При использовании куки сессии, указав идентификатор для session_id() всегда будет отправлять новый файл cookie при вызове session_start(), независимо от того, совпадает ли текущий идентификатор сеанса с тем, который установлен.

PHP сессии массив постоянно меняется, потому что это то, что ваш код поручить это сделать

+0

Да, я только что прочитал об этом - выложил комментарий об этом в приведенном выше ответе. Тем не менее, на странице referesh, я получаю NEW значения в массиве 'HEADER_MODEL', это означает, что вы снова включаетесь в сеанс. но как это может быть? Извините, но я не понимаю .. Спасибо. – pilau

+0

Быстрый вопрос ?? Зачем вам нужно установить 'session_id' ???? – Baba

+0

Потому что вторая страница вызывается из флеш-файла. Разве это не правильный способ сделать это? – pilau

Смежные вопросы