有时需要进行一些操作后,跳转回之前访问输入的地址,比如会员登陆。
那在Codeigniter中如果实现呢?
原理很简单,在第一次访问时,用$this->uri->uri_string()返回Uri信息的字符串,然后保存在名为currentUri的session,之后每次访问其他页面时,都会将之前访问的Uri重新赋值给名为previousUri的session,在需要跳转回之前的页面时,就用$this->_redirect('', true)
//Controller中的两个方法,$this->_setPreviousUri()必须在__construct()中执行
function _setPreviousUri(){
if( $this->session->isSess('currentUri') ){
//之前访问URL
$this->session->setSess('previousUri', $this->session->getSess('currentUri'));
}
//当前访问URL
$this->session->setSess('currentUri', $this->uri->uri_string());
$this->currentUri = $this->session->getSess('currentUri');
$this->previousUri = $this->session->getSess('previousUri');
}
function _redirect($uri='', $prev=false){
if($prev) redirect($this->previousUri, 'refresh');
else redirect($url, 'refresh');
}