为什么在使用 "redirect" 函数重定向到其他控制器后,CODEIGNITER 会丢失 session?
Why does CODEIGNITER lost session after redirect to other controller by using "redirect" function?
我正在学习 codeigniter。我正在尝试编写登录系统代码,在完美登录后我想将页面重定向到另一个控制器。重定向后,我无法获取用户 session 数据。但是,当我手动转到该页面时,我可以获得 session 数据。有解决办法吗?
我为session做了什么:
$this->session->set_userdata('userid', $user->user_id); //in login controller
echo "userid: ".$this->session->userdata('userid'); // in profile controller
codigniter 版本:3.1.11
php 版本:7.3.7
注意:网上关于“session.php”
的所有解决方案我都试过了
编辑:
class Profilim extends CI_Controller
{
public function index()
{
echo "profilim userid: ".$this->session->userdata('userid');
}
}
class Giris extends CI_Controller
{
public function index()
{
$this->load->model("GirisModel");
if($this->input->post('giris')){
$data["loginmessage"] = "";
$data["login_status"] = false;
$email = $this->input->post('email');
$password = $this->input->post('password');
$result = $this->GirisModel->isUserExist($email,$password);
if($result->num_rows()){
$data["loginmessage"]="Giriş Başarılı!";
$data["login_status"]=true;
$user = $result->row();
$this->session->set_userdata('userid', $user->user_id);
/*Redirect the user to some internal controller’s method*/
redirect('Profilim','refresh');
}
else{
$data["loginmessage"]="Yanlış şifre veya kullanıcı adı!";
$data["login_status"]=false;
}
$this->load->view("giris",$data);
}else{
$this->load->view("giris");
}
}
}
你可以试试这个(备份命名文件后):https://ganganga.in/2019/09/17/codeigniter-3-x-x-and-php-7-x-x-session-lost-while-redirect/
Codeigniter 3 基于 PHP 5,但在一定程度上适用于 PHP 7。
我找到了解决方案:
如果你没有在 config.php 文件中设置 base_url 它会将页面重定向到 http://[::1]/something 所以如果你改变你的基础 [=16] 它会删除会话=] 本地主机有效
我正在学习 codeigniter。我正在尝试编写登录系统代码,在完美登录后我想将页面重定向到另一个控制器。重定向后,我无法获取用户 session 数据。但是,当我手动转到该页面时,我可以获得 session 数据。有解决办法吗?
我为session做了什么:
$this->session->set_userdata('userid', $user->user_id); //in login controller
echo "userid: ".$this->session->userdata('userid'); // in profile controller
codigniter 版本:3.1.11 php 版本:7.3.7
注意:网上关于“session.php”
的所有解决方案我都试过了编辑:
class Profilim extends CI_Controller
{
public function index()
{
echo "profilim userid: ".$this->session->userdata('userid');
}
}
class Giris extends CI_Controller
{
public function index()
{
$this->load->model("GirisModel");
if($this->input->post('giris')){
$data["loginmessage"] = "";
$data["login_status"] = false;
$email = $this->input->post('email');
$password = $this->input->post('password');
$result = $this->GirisModel->isUserExist($email,$password);
if($result->num_rows()){
$data["loginmessage"]="Giriş Başarılı!";
$data["login_status"]=true;
$user = $result->row();
$this->session->set_userdata('userid', $user->user_id);
/*Redirect the user to some internal controller’s method*/
redirect('Profilim','refresh');
}
else{
$data["loginmessage"]="Yanlış şifre veya kullanıcı adı!";
$data["login_status"]=false;
}
$this->load->view("giris",$data);
}else{
$this->load->view("giris");
}
}
}
你可以试试这个(备份命名文件后):https://ganganga.in/2019/09/17/codeigniter-3-x-x-and-php-7-x-x-session-lost-while-redirect/
Codeigniter 3 基于 PHP 5,但在一定程度上适用于 PHP 7。
我找到了解决方案:
如果你没有在 config.php 文件中设置 base_url 它会将页面重定向到 http://[::1]/something 所以如果你改变你的基础 [=16] 它会删除会话=] 本地主机有效