【发布时间】:2013-09-11 18:05:32
【问题描述】:
我正在尝试在重定向后创建会话闪存消息。
我有控制器类
class Controller
{
function __construct()
{
if(!empty($_SESSION['FLASH']))
foreach($_SESSION['FLASH'] as $key => $val)
$this->$key = $val;
}
function __destruct()
{
$_SESSION['FLASH']=null;
}
}
我还有 Controller 子类 Home,其中的函数是通过路由运行的,例如 /Home/Index => public function index()
class Home extends Controller
{
function __construct()
{
parent::__construct();
}
public function index()
{
//where i want to display $this->message only once
echo $this->message; // but $this->message is undefinded why?
}
public function Post_register(){
//after post form data
// validation
// this function redirect to /Home/Index above function index();
Uri::redirectToAction("Home","Index",array('message' => 'some message'));
}
}
和我重定向用户的 uri 类函数。
public static function redirectToAction($controller,$method,$arr)
{
$_SESSION['FLASH'] = $arr;
header("Location:/".$controller.'/'.$method);
}
但$this->message 未定义,为什么?
【问题讨论】:
-
你在使用任何框架吗?
-
你在哪里设置
$this-message?如果你没有在任何地方设置它,它将是未定义的。 -
您的代码中是否有 session_start() 函数调用? session_start 上的 php 手册:php.net/manual/en/function.session-start.php
-
我很想创建自己的框架,在这里:$this->$key = $val;是的,我有 session_start();
-
你用的是什么版本的php?
标签: php session controller