내 문제는 스위치 컨트롤을 포함하는 정적 메서드를 호출 할 때 $ _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;
....
누구에게 무슨 문제가 있는지 알고 있습니까? 고맙습니다!
정확히 무엇이 발생합니까? 과제가있는 회선에 대해서도 1000 % 확신하고 있습니까? –
이 정적 함수를 호출하기 전에 브라우저에 출력을 보내지 않습니까? 다른 출력을 보내기 전에'session_start()'를 호출해야하기 때문에 묻는 것 ... 로깅을 켜고 로그를 확인하면이 경우인지를 알 수 있습니다 ("헤더가 이미 전송되었습니다"라는 오류 메시지가 나타납니다). – wimvds