小鹅

喜欢DOTA,关注JavaScript、jQuery、ActionScript、CodeIgniter、PHP、MySQL等相关技术...
存档 2008年04月17日 的所有文章

Codeigniter中跳转回之前访问页面

有时需要进行一些操作后,跳转回之前访问输入的地址,比如会员登陆。
那在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');
}
17 2008