|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
# l8 q! q! L4 e Y, u Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
& P. G7 ?7 K% j; |/ Z My_Controller.php ) s% V7 Q* t" i0 |* F1 U) O
class MY_Controller extends CI_Controller4 {( P* D$ p+ x& A
, @- H& C! h# L$ S& _( M
{
' k4 i! q& }' Y3 {0 j9 j, A6 l public function __construct()0 u/ d3 W2 N5 ^/ l5 x; \
4 ?) Z+ ?7 v% M/ H6 p' G; m {
. K E$ r' Q9 v' _4 }. C parent::__construct();) ?" n- c/ R/ Z$ y
/*判断是否登录,判断当前URL是否是auth/login*/- k* N' q2 c% E& `# T9 U" H- h4 ]
if ( ! $this->tank_auth->is_logged_in()9 h. ^+ L1 {! d* I# ~/ E
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))8 u9 j( a4 I3 W9 P
9 c& U- ?' n) G) l7 Z5 q I {
9 c0 u3 Q: d" k/ u $redirect = $this->uri->uri_string();
' n$ G, ~! N6 g# Z6 H& x if ( $_SERVER['QUERY_STRING'])/ }2 T! [ \2 M0 o. l
8 v7 e' z! N2 `; c7 C {
& a2 `- B3 E1 n" ?0 X. ~ $redirect .= '?' . $_SERVER['QUERY_STRING'];9 I+ {5 j v4 g x" u* i- W
6 J- g5 ]& ?6 I0 w4 f }
: b) @9 h3 m, V8 Q /*跳转到用户登陆页面,指定Login后跳转的URL*/
5 G! ]( j" z$ o" Z+ c6 Q: ~ redirect('auth/login?redirect='.$redirect);9 L+ v" m2 D( u
" E0 _( f5 g- g$ M5 i; y4 u8 a1 l
}
' T/ [# l$ c0 b/ w6 K) _' F& T, r- E
} ; ]5 {& F9 m, f0 }' T* r
3 o1 r7 C/ a+ I5 H5 `
} 7 T/ d- A2 Y! Y+ ?
User.php / V9 q# j @/ U
class User extends MY_Controller0 ?$ C( t' X$ l& S
8 u) Z( x/ a2 `{
) f1 A( K1 [2 o& `" _4 f function login()
: \% @: Q4 Z5 Q8 H2 n* v; S6 {" i8 }; L# W* e8 Y9 P6 M" x# s
{ 4 [# _% Z% K, s" J/ k& Z
if ($this->tank_auth->is_logged_in()) { // logged in
$ p/ ~, {' {9 R: g9 z redirect('/');: g8 F/ j6 k; c; K! }; C: o& g
} else {# x" i8 Z- r& q/ R
//other codes here......* z0 s$ G1 S$ A0 S
/*判断是否有redirect信息*/
; z9 Q Y/ z4 N6 P4 s $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';. H6 i* [7 z( z
if ($this->form_validation->run()) { // validation ok
, W$ m+ o0 `! h' {3 O$ ~ P if ($this->tank_auth->login(
+ s2 J6 O+ @2 v: x3 c $this->form_validation->set_value('login'),2 H0 r7 w& O e' `' O
$this->form_validation->set_value('password'),
7 k* `9 E* Z7 N: p $this->form_validation->set_value('remember'),
: o) K7 c& @3 ~0 v6 Y $data['login_by_username'],: h/ v1 C) q; ^2 }0 g- l4 b
$data['login_by_email'])) { // success7 b: f" E4 [. y" N/ z( U1 u
redirect($data['redirect']);
5 {1 e; w' ~" _3 g, P& d } else {; s, } ~. P, b
//error handling
5 a! b% [/ o- C# g4 F' q( y
$ R$ Q7 v9 e2 j8 w# O1 [9 Q8 j } ) c( b% u8 x! Z, I
3 V3 g$ ^$ X# q, Q- _8 }; o
}
( E% P; `. N' ^* @+ h: Y% i $this->load->view("login_form")
3 P$ P' f. S- x. C# I7 D) d. s! E6 S- K# z0 m* L5 [+ f
}
+ Z6 L& E# x7 J. |5 R8 U; ^) R+ A, X& B% I o
}
! p. @# |' j, U
9 Q- x6 ?* ~$ N/*
( H8 q( D O. q- x& X, N2 O Note: 在login_form中需要注意,提交表单的form地址:6 d' x3 j. A0 M; o7 m4 P3 X+ W
! x: w& @) C7 n; }
; F2 P( z% j/ j- K*/ " B3 l8 I6 n% [: B O
1 b3 a1 I3 f* W9 ?, C
}
0 V+ N+ \: M5 ] 在login_form中需要注意,提交表单的form地址:+ Y, F# N' C% b- A
2 r) R1 I6 u' r/ X本文由外链代发http://t.qq.com/wailiandf整理 |
|