Сессия не хранит переменную - PullRequest
0 голосов
/ 02 января 2012

Моя проблема в том, что при вызове статического метода, который содержит элемент управления switch, переменная $ _SESSION не сохраняется. Вот мой код:

class Booking {

static public function bookCourse() {        
$smarty = SmartySingleton::getInstance();
session_start();
    if (isset($_POST['step'])) {
        switch ($_POST['step']) {
            //step 1 post
            case 1:
                //validate                     
                $errors = $validator->validateStep1();                    
                if ($errors == ""){
                    $_SESSION['step1'] = 'test';
                    var_dump($_SESSION); //here it prints test
                    $smarty->display('step2.tpl');
                }else{
                    $smarty->assign('errors', $errors);
                    $smarty->display('step1.tpl');
                }
                break;
            //step 2 post
            case 2:                    
                $errors = $validator->validateStep2();
                if ($errors == ""){
                    var_dump($_SESSION); //here it prints empty array
                    $_SESSION['step2'] = $_POST;   
                    $smarty->display('step3.tpl');
                }else{
                    $smarty->assign('errors', $errors);
                    $smarty->display('step2.tpl');
                }
                break;

           ....

Кто-нибудь знает в чем может быть проблема? Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 января 2012

Вы должны начать сеанс с командой session_start().

ср: http://php.net/manual/en/function.session-start.php

Примечание: session_start () должен произойти как можно раньше в вашем скрипте. Как только что-то распечатано, оно перестает работать.

0 голосов
/ 02 января 2012

В случае 1 вы назначили $_SESSION['step1'] = 'test';, чтобы он печатал тест.Принимая во внимание, что в случае 2 ничего не назначено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...