注销后如何重定向到当前网址?
用于注销的 HTLM:
<a href="<?php echo base_url() ?>korisnik/logout">Logout</a>
控制器功能:
function logout() {
$this->session->sess_destroy();
redirect(base_url());
}
注销后如何重定向到当前网址?
用于注销的 HTLM:
<a href="<?php echo base_url() ?>korisnik/logout">Logout</a>
控制器功能:
function logout() {
$this->session->sess_destroy();
redirect(base_url());
}
yAnTar有正确的想法(将最后一个 url 存储在当前的 URL 中),但 CI url 通常不接受 base64 编码字符串中的所有字符(如=
)。尝试这个:
<a href="<?php echo base_url() ?>korisnik/logout?last_url=<?php echo urlencode(current_url())">Logout</a>
function logout() {
$this->session->sess_destroy();
redirect($this->input->get('last_url'));
}
另一种选择可能是重定向到$this->input->server('HTTP_REFERER')
,但我在过去遇到过问题(旧版本的 Google Chrome 发送favicon.ico
)并且通常不推荐它。
在注销功能中使用它
$this->session->set_flashdata('redirect_url', current_url());
现在用你的另一种方法
if($this->session->flashdata('redirect_url'))
{
$url = $this->session->flashdata('redirect_url');
redirect($url);
}
您可以像方法注销中的第一个选项一样添加 url
<a href="/korisnik/logout/<?php echo base64_encode(current_url());?>"
下一步在你的功能
public function logout($url){
redirect(base64_decode($url));
}
如果您只要求重定向,那么这样的事情可以帮助您解决问题。
$url= base_url().'index.php/korisnik/logout';
redirect($url);
从我看到的你base_url()
有一些问题或者你index.php
在 URL 中丢失,请检查。
当我遇到这个问题时,我在控制器的构造中使用了以下代码:
$this->session->set_userdata(array('last_url' => current_url()));
我设置了一个 favicon,然后过了一会儿我开始注意到在使用 last_url 的几个函数上我被重定向到 favicon.ico。
我最终弄清楚了问题所在。我刚刚将 favicon.ico 添加到我的 htaccess 文件中,它现在可以正常工作了。
这是 .htaccess 行:
RewriteCond $1 !^(index\.php|img|css|js|slider|uploads|robots\.txt|favicon\.ico)
我希望这对其他人有帮助。