|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:2 e! o7 i( J; Z9 F. ]9 L
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
; K5 B9 C% Q2 @4 [" h My_Controller.php ) S+ B- g# F: o. M& g- i9 p% v
class MY_Controller extends CI_Controller, x1 Q1 K$ T/ H* g/ L
1 Z: W3 S a: u
{ ! g8 G8 ~2 u7 [+ V
public function __construct()
( B' }. G/ s+ |3 C) c# B: p: M) j, p; \
{
3 t; n: f9 o9 c6 m7 c8 Q) M parent::__construct();! h" l0 M9 G2 |7 ]/ r5 j
/*判断是否登录,判断当前URL是否是auth/login*/
8 j/ R# k* q6 z3 k if ( ! $this->tank_auth->is_logged_in()
5 X: c3 F8 X5 w3 ~ && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))4 Q' _* l+ W( U4 [; k7 z8 J
2 o: d8 A$ y6 e. t$ w
{ " r' S: o; b, \9 N+ H4 I
$redirect = $this->uri->uri_string();
& Q1 @- X2 G' c' e. V: O if ( $_SERVER['QUERY_STRING'])# _, A6 S; D2 a3 I
: S9 Z0 A' p0 F5 g5 b2 M# L- |. l { 2 H6 _) b Q; _3 c5 v; A
$redirect .= '?' . $_SERVER['QUERY_STRING'];
- j! }; y; Q5 y+ ^( ]* v' ]) b8 K1 P# I$ S4 T. K5 i' }
} * h% x: N* r" v% y& c _0 f
/*跳转到用户登陆页面,指定Login后跳转的URL*/% m2 H2 W2 Z# X9 H
redirect('auth/login?redirect='.$redirect);6 I* Q3 e3 B7 k: b8 f
% @, n% m# B; H9 q. M V- b }
% K6 x! \: M, B- Y+ K. A
1 C' V& E( y( t. K0 n! u* i# i }
1 R& ?8 i2 V7 i! B# p3 j0 H& b' |% x8 ^
}
% a# o$ [3 W6 I/ b8 N) t User.php 2 N( n- n3 z4 O/ n3 J: x
class User extends MY_Controller7 E1 i5 X! K, H, n$ F8 s* M) h5 a
; {: \5 z6 N1 D, f0 M E{
B0 T" F# L7 V3 C function login()+ g+ {* V- r9 Y" |$ |- U
) M" p2 ^, `2 y% R% A
{ a( F1 R- e7 s. x' g7 s: ~
if ($this->tank_auth->is_logged_in()) { // logged in
+ Y4 K9 E$ s: @/ ~- O( |! a$ d redirect('/');! M R2 A$ ?7 w" E- I# b
} else {
F; M) X' D/ K2 e7 u //other codes here......' i" P3 I' G- \
/*判断是否有redirect信息*/
q- v% ~' Z$ {, K $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
! E3 M! {; R$ P1 `8 W% G# w' E if ($this->form_validation->run()) { // validation ok `2 c3 W+ ^9 D, K* l* J6 ~
if ($this->tank_auth->login(
; {* T8 j F2 I) z% J! } $this->form_validation->set_value('login'),
1 b W5 {, n2 d2 d; b2 `& b. e $this->form_validation->set_value('password'),
; h! Q& h8 u) s; V3 {# y) _4 j, _ $this->form_validation->set_value('remember'),
" V( ~" ?& u6 {1 V. P& y, f $data['login_by_username'],
" H5 M3 ?. a# W/ E( b $data['login_by_email'])) { // success
, m9 _ m' ^1 L v5 K redirect($data['redirect']);" l% y' L6 r' b! B& D
} else {& I$ a. R* {4 \* i) I0 h7 I+ J, H
//error handling
/ j* B; I. u: _+ q
7 [- a; L8 c% c3 ?1 g } 0 S6 r; Q. s8 d8 ] W) I
2 y+ _. X% j1 A" j! l } ; c2 C9 g7 E5 {" z9 M
$this->load->view("login_form")
7 r# ^7 h8 i2 Y5 v( c# k+ _2 U1 ~0 x
}
% l k; L2 p! W) H* F% T5 u
$ ^3 _& T _( [4 f( J' p } % k/ I7 p( x0 D* H% K
2 ?9 f4 G* ?. Q: E/* ( [# Y6 T/ ^) q, E
Note: 在login_form中需要注意,提交表单的form地址:/ |' I6 b1 s% H- A; ?1 S
' Y- f1 U, n2 M; H& r' t. D5 l
) @# y3 @; x' l. } Q5 A* a& a*/ ) k. A u$ j: E2 |8 Y- C/ M' i
$ t' X# O A& v5 f2 G r5 D}
- ^" h& |1 k/ g8 r) ? T0 n4 I* H( H 在login_form中需要注意,提交表单的form地址:. O. i* l6 F* c
# Y/ U* ~% H. _* k6 D; c2 c* c本文由外链代发http://t.qq.com/wailiandf整理 |
|