Самопроизвольное закрытие текущей сессии при переходе "php-файл --> drupal"

Главные вкладки

Аватар пользователя Stepler Stepler 12 января 2011 в 19:33

Дано:
1. сайт mysite.ru состоящий из двух страниц: главной mysite.ru и страницы результата mysite.ru/result
2. файл work.php

С главной страницы методом POST в work.php передаются переменные Var1 и Var2, там они обрабатываются и как результат Var3 записываются в открытую сессию, после чего осуществляется переход на страницу mysite.ru/result, где переменная Var3 должна быть обработана. Но проблема в том, что массив $_SESSION пуст. Проверка показала, что при переходе на mysite.ru/result почему-то закрывается текущая сессия (session_id() в work.php и mysite.ru/result выдает разные значения идентификатора сессии) и все переменные в $_SESSION теряются.

Скрипт на mysite.ru

<html>
  <head>
    <title></title>
  </head>
<body>
  ...
  <form method="post" action="work.php">
        <input type="checkbox" name="var1" value="a" />первый <p>
        <input type="checkbox" name="var2" value="b" />второй <p>
        <input type="submit" name="button" value="пуск" />
  </form>
</body>
</html>

Скрипт в work.php


<?php
  session_start
();
  
$_SESSION['var3']=$_POST['var1'].$_POST['var2'];
  
header("Location: mysite.ru/result");
  exit();
?>

Скрипт на mysite.ru/result


<?php
  session_start
();
  
$var3=$_SESSION['var3'];
  echo 
$var3;
?>

Передача методом GET не подходит т.к. не хочу "светить" передаваемые данные.

Комментарии

Аватар пользователя vsu@drupal.org vsu@drupal.org 12 января 2011 в 21:30

Drupal заменяет встроенный в PHP механизм сохранения сессий на свой — если нужно использовать именно внешний php-файл, придётся оттуда подключать кусок кода Drupal. Вот тут есть пример рабочего кода, и обсуждение посвежее.