|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
& H$ t$ T* o+ {) v Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
. G& _. r6 V/ } My_Controller.php 3 q, i# i' ]8 V k% O4 b
class MY_Controller extends CI_Controller$ e4 J# Y3 l+ q5 a$ f" d0 P! h
3 m) @- `: }2 N- O8 J6 l{
7 U/ }) ~5 V) s5 Z0 f1 e9 t public function __construct()
% ~4 z* @% z8 x, ~, h8 S' {7 `0 X+ g$ C/ x
{
% v- n( v* K9 B! s: y parent::__construct(); Y$ U; c9 C( r# K
/*判断是否登录,判断当前URL是否是auth/login*/
) s, v. z- X2 }! Y# _7 O, R if ( ! $this->tank_auth->is_logged_in()
5 V( V2 Y6 [. E" I, i @9 u && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))
7 J! d S' E, H- Q9 D
5 _! ]+ C( D- ` W2 M { \& N3 W. D/ \9 N
$redirect = $this->uri->uri_string();
; K7 i7 D2 V' z9 J' v# } if ( $_SERVER['QUERY_STRING'])* U. d! B+ a( Z+ A4 R3 C
- z# [) }) ]1 m: N4 _1 V
{
% ?, x) ^, H. U3 i1 H' { $redirect .= '?' . $_SERVER['QUERY_STRING'];
' Z6 f7 N! q8 k9 O S4 q' c M, E5 f2 Z. E2 o
}
# `7 p9 X" d, I/ u& Z /*跳转到用户登陆页面,指定Login后跳转的URL*/
5 g# V. J/ H) X7 C* Z redirect('auth/login?redirect='.$redirect);. |) `8 i; e& l8 c
8 S' b; h9 I3 x# a+ H- n
}
1 G$ ~0 q6 s% o4 d0 \% ]+ ^/ [# Y: \6 C
} 7 H+ O% W. U# k2 W4 C0 i9 q
" O7 _7 A3 K. _2 l
} 5 I4 t( `1 m- w( B4 K6 H
User.php
7 ^! m: P5 i$ H. b0 i0 y1 |3 o class User extends MY_Controller
: e# w+ S3 \ F7 ]/ b' N. Y; {1 G$ @3 t/ d6 L) d- o
{ % Q: p! h" ~4 J7 a- {5 e
function login()7 c( _9 a1 k/ B i6 y
% V! Z3 j2 M- a/ o
{ $ a7 p. s0 p$ S
if ($this->tank_auth->is_logged_in()) { // logged in
G* E: D, P, L6 I) O redirect('/');
. Y1 E9 R4 h* A( J" h9 d1 y: `, ` } else {2 c- e/ m3 E) u+ F2 w% Q6 Q4 s
//other codes here......( T# c, w! d( u# x4 `) R3 u% `0 z
/*判断是否有redirect信息*/
! S' x6 ~- Y' J, G7 a/ w* v& q $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';7 B4 d- R) i; t' I V) I% J8 v5 _
if ($this->form_validation->run()) { // validation ok
1 J% n6 m& R4 L" |* _ if ($this->tank_auth->login(/ N% ]2 z" m z) x* s6 k& A) ^
$this->form_validation->set_value('login'),
# a' R: J* f' l% M- z" a $this->form_validation->set_value('password'),3 l6 q# `* z I& ]; i
$this->form_validation->set_value('remember'),
+ x' q$ G8 M3 ^) V5 ~+ X! @0 d, Z0 Y $data['login_by_username'],
2 u4 k( Z) S! j9 b; k. Q $data['login_by_email'])) { // success. P4 ^6 }6 Z' [0 h" l7 q1 B
redirect($data['redirect']);
$ M" I/ v6 v# u } else {
8 A0 A7 S- G! b+ _ //error handling8 L7 T- K% x4 V$ _. a$ v0 ^9 @
) f, M2 `" j' f
} / z- p: Q5 }! K! `
: Y6 `) a9 m; q; F
} ) m) ]+ v Z5 s h4 ~3 B! [
$this->load->view("login_form")
' `& ~1 ^: b; A0 N5 @0 L3 _1 N# N9 R' a
} 0 D' a# t) p' b. e
" z: m* h- w. |6 S9 B9 x" e }
8 T8 j) C$ I# F t- f5 @ v
9 c# } M+ a) R# R$ x7 H/*
. H7 n0 R$ F' i5 L, X5 H$ U Note: 在login_form中需要注意,提交表单的form地址:
3 j* s# x$ N' g1 m0 H
' n7 A* R& x- J5 {: f+ K
1 A4 H |0 T! F* y& p) G*/ 8 X: k: J# z N& K+ L) Q) u/ E
% F, r& J' u/ L) i3 ?, B" U' j} & o8 C4 L- D0 x/ Y
在login_form中需要注意,提交表单的form地址:* c2 p1 q& _, Y4 y, O- x7 U
, ~# M$ {2 H' L& Y3 l) D本文由外链代发http://t.qq.com/wailiandf整理 |
|