在我的默认控制器会话中设置了值。
现在在我调用不同视图的每个控制器中,我想检查是否设置了会话的值,然后只显示该视图,否则它会将用户重定向到视图中的日志。
所以,据我所知,我必须在我的每个控制器中检查会话的价值是否有任何捷径?或者有没有办法调用一个文件/函数,每次调用任何控制器之前调用。所以我可以在那里检查会话的价值
我也试过过钩子也是这样的:
class Authentication extends CI_Hooks {
var $CI;
function __construct() {
$this->CI = & get_instance();
}
public function verify_session() {
if (!isset($this->CI->session)) {
$this->CI->load->library('session');
$user_session_id = $CI->session->userdata('email');
if ($user_session_id == '') {
redirect('common_controller/home_controller');
}
}
}
}
但它显示我这样的eroor:Severity: Notice
消息:尝试获取非对象的属性
文件名: hooks/Authentication.php
行号: 20
答案 0 :(得分:0)
尝试:
<script>
console.log(<?php echo json_encode($_SESSION, JSON_HEX_TAG); ?>);
答案 1 :(得分:0)
您没有说出您正在使用的框架,但我猜测如果您使用MVC,则只有一个php文件(通常是index.php
)在哪里可以放置代码。
它似乎也使用了钩子,因此您可以将它添加到在识别和调用控制器之前执行的钩子中。
请记住在登录页面上添加一张支票,如果是这样的话就不应用重定向...