|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
q4 w$ ]8 o& V" `9 o& f Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:, g9 ]+ |9 g5 o2 E: M- V; @
My_Controller.php
" M9 C8 e# W& R% c( T7 E$ J class MY_Controller extends CI_Controller
, U$ S5 [9 @% C; j9 [! v
" G/ d8 b. p5 w- x' B{ 1 c7 q" d' G" w& n2 u: ~/ t
public function __construct()4 [: Y; |, k& G; R3 }
. s7 \7 p" \4 j4 @4 L, h" s! A {
p3 g# a7 e" T parent::__construct();
. V' I, a4 e5 t* _ /*判断是否登录,判断当前URL是否是auth/login*/
/ C- a7 f! N7 V3 ]. A if ( ! $this->tank_auth->is_logged_in()
! z d9 Y, L6 `1 `+ D+ p+ m && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))# A b$ D# W5 t9 W) s9 q! G$ e
. `& W. ^0 T+ R4 V$ W { ! X) A2 j0 g& Q" \4 l
$redirect = $this->uri->uri_string();, U& E' j* ?8 {
if ( $_SERVER['QUERY_STRING'])
! `: t$ Y6 I6 u1 Q
' }% K# g" K; F V { ! G F e. Y2 Z/ d
$redirect .= '?' . $_SERVER['QUERY_STRING'];* S" |) g+ _- R3 r8 y
, [" Z- E# V4 L. {
}
/ o& j( j, C8 t% V3 q4 Y2 Z2 M /*跳转到用户登陆页面,指定Login后跳转的URL*/: Q% p1 r& A! h* B9 u' _! i2 Q
redirect('auth/login?redirect='.$redirect);8 L9 s2 A7 [* T
% j$ o6 l( y" D& H8 i8 r } 1 X/ V2 \1 l) U6 p' K
$ [' R" `! b3 O9 R+ u }
6 T0 {6 K* G$ I# B
; Q' U) K0 F+ z}
/ T- o& u, j- s) y5 Z( { User.php
0 Q9 Q* U6 E* J/ W% ~ class User extends MY_Controller
3 j9 H3 {0 Y# q1 ^# O. T) \( O6 r( E8 |" V1 @3 [1 y, S# J l8 r
{ " i5 k, ^8 t' S0 r& U( Z
function login()! h6 z' m8 h6 E2 Y# r# e. v: V
* G6 N6 R% e, v0 q9 [' b {
' ?1 k" o; P- D, @- _ if ($this->tank_auth->is_logged_in()) { // logged in; q! ^4 D6 t6 x; F( B" }
redirect('/');0 r* ?- `- A6 E4 S
} else {: ^( ?" A* N! {) q4 P \* c
//other codes here....... S# y: a) P: X' X
/*判断是否有redirect信息*/
O1 S2 P5 r0 v% b $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
1 c% c6 e# F3 F: O) K1 W if ($this->form_validation->run()) { // validation ok6 `5 w6 ?6 U9 T6 _, ~" _
if ($this->tank_auth->login(' v4 N( z8 H' z, h+ |
$this->form_validation->set_value('login'),
8 a* }: [' i4 f6 ^1 L $this->form_validation->set_value('password'),
3 \+ D9 y. C" E; k $this->form_validation->set_value('remember'),
* `# |3 P" B( }# H& r. C $data['login_by_username'],
# `/ D) J9 u- I5 E $data['login_by_email'])) { // success0 ?5 P3 B: _" U* W5 I
redirect($data['redirect']);. @1 j, y, X' U* g8 o0 b6 K
} else {
: o4 M% {% L, r# U //error handling
1 R d3 i+ ?9 R3 f
# w; I6 G! j" ?' u' h; _. K }
* q- l6 `3 w% L* F {* Z! V
) `2 c, N) E: @( } }
S! D) A% U1 f! M& R3 G7 S $this->load->view("login_form"). c8 ~7 v: t$ A
; {' G3 I$ `) t, ^: z }
2 b- P6 r0 a7 u, U! @ W* n" c- c# M- r# W. p
} 7 w4 N) Q Z' y3 e3 t
" D5 D- d$ Y( U/ E, I$ e/* ; \" K \* N8 g+ y4 U% W
Note: 在login_form中需要注意,提交表单的form地址:
% F1 E5 D. K P1 k0 Y5 p8 z
! J7 V @/ t& I0 b# Q( Y" \8 f3 `2 B$ i0 y. Z6 f
*/
% d5 M" `: x% t7 \0 ^ I7 S. m# ?: k5 x/ L0 ?
} 7 @2 p" X. h2 G/ I: a9 M5 k
在login_form中需要注意,提交表单的form地址:2 \3 a+ }2 \' B; O7 u3 |; T
: Q4 m6 u' |' [. Q# ~2 Y
本文由外链代发http://t.qq.com/wailiandf整理 |
|