Мне необходимо прочитать данные из стандартного массива $_SESSION в одном друпаловском модуле. Как мне удалось заметить - друпал переопределяет стандартные функции для работы с сессиями:
session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy_sid', 'sess_gc');
Как это можно обойти? Дело в том, что параллельно с друпалом в одной из папок стоит скрипт интернет-магазина. То что заказывает пользователь храниться в сессиях. А мне необходимо выводить эти заказанные товары на страницах друпала.
UPD
Я знаю, что можно работать с сессиями, но друпал для этого использует свои функции. То есть к примеру если я внутри стороннего скрипта сделаю присвоение:
$_SESSION['var'] = 123;
то при чтении этого же значения из модуля в друпале это значение будет пустым.
Комментарии
print $_SESSION['имя']
Этот массив пустой.
print_r($_SESSION); - выдает пустой массив.
Хотя если создать на этом же сервере скрипт:
<?
print_r($_SESSION);
?>
то он выдает то что нужно.
не пустой он. ни разу.
foreach'ом читайте.
{
echo $p." = ".$q."<br/>";
}
ничего не выводится!
Если написать в индексном файле друпала в самом верху:
print_r($_SESSION);
то все нормально!
Массив становится пустым в файле bootstrap.inc после строк:
session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy_sid', 'sess_gc');
session_start();
значит, проблема в вашей установке друпала.
многие друпал функции прекрасно используют этот массив http://api.drupal.org/api/function/drupal_set_message/6