public function set_userdata($data, $value = NULL)
{
if (is_array($data))
{
foreach ($data as $key => &$value)
{
$_SESSION[$key] = $value;
}
return;
}
$_SESSION[$data] = $value;
}
上面是代码生成会话,这里是存储的真实的变量的屏幕截图。
if(!$result->uid) {
$this->member_model->scripts("잘못된 아이디 또는 비밀번호입니다");
} else {
$userdata['uid'] = $result->uid;
$this->session->set_userdata($userdata);
echo "<script>";
echo "parent.location.reload();";
echo "</script>";
exit;
}
但是,在通过parent.location.reload();,它转到构造函数,它丢失了会话变量..是这样吗??
这是从**parent.location.reload()**调用的代码的一部分
public function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->model('member_model');
$this->load->model('setting_model');
$this->load->helper('iny_common_helper');
$this->load->helper('url');
if($this->session->userdata('uid')) {
$this->memberInfo = $this->member_model->get_member_infoByUid($this->session->userdata('uid'));
}
if($this->memberInfo->no) {
$this->member_model->memberInfo = $this->memberInfo;
}
因此,在这里,它获得了不同的会话值,并丢失了一个变量,即“uid”。
由于它得到不同的会话值,我不能调用**$this-〉session-〉userdata('uid')**。请留下任何想法或评论!!提前感谢。
--编辑与新增
if (isset($_COOKIE[$this->_config['cookie_name']])
&& (
! is_string($_COOKIE[$this->_config['cookie_name']])
OR ! preg_match('/^[0-9a-f]{40}$/', $_COOKIE[$this->_config['cookie_name']])
)
)
{
unset($_COOKIE[$this->_config['cookie_name']]);
}
session_start();
// Is session ID auto-regeneration configured? (ignoring ajax requests)
if ((empty($_SERVER['HTTP_X_REQUESTED_WITH']) OR strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest')
&& ($regenerate_time = config_item('sess_time_to_update')) > 0
)
{
if ( ! isset($_SESSION['__ci_last_regenerate']))
{
$_SESSION['__ci_last_regenerate'] = time();
}
elseif ($_SESSION['__ci_last_regenerate'] < (time() - $regenerate_time))
{
$this->sess_regenerate((bool) config_item('sess_regenerate_destroy'));
}
}
以上是**$this-〉load-〉library('session')调用的session.php文件的一部分;**
1条答案
按热度按时间j2qf4p5b1#
我想你有点搞不清楚了。家长。位置。重新加载。()是一个javascript结构,它触发当前窗口的父页面的重载。在您的例子中,它将触发登录页面的重载,因为您不在一个内嵌在父页面中的iframe中,您在一个页面中,您没有家长。您需要将下面的代码替换为重定向到登录页面(或当前主页)的页面重定向
您可以使用php或javascript。
php:
浏览器:
我会用php:),在你的例子中,else分支会变成:
exitexample.com(或die())语句很重要,应该存在,header()函数也只有在第一次输出时才起作用(之前没有echo,print等),否则你需要使用javascript重定向。