|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:+ f$ L( R5 S7 ~7 R: @2 U. d6 c
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:6 z- Y9 R5 S$ e. t* x
My_Controller.php
, v+ A. p8 k- l v! i3 ]. U% I& A class MY_Controller extends CI_Controller R/ { n/ n: c) c0 [1 w7 c/ K% D
: I: w: r- n( N+ d# B% l{
2 ~, Z' ~! |1 ]0 a( J0 F public function __construct()5 O3 v& a8 F9 l
3 ~3 G) U5 Z2 U7 B e1 M' s) l- ^ { ' \. C2 x7 S1 e: O
parent::__construct();
" B- B4 q z! K/ _' R /*判断是否登录,判断当前URL是否是auth/login*/
" {' Q8 A) k9 H* W if ( ! $this->tank_auth->is_logged_in()& U& V% z4 ?0 C5 W0 @% _2 L4 f* @
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))+ ?, ?+ e, ^: s' S u! Z
) S/ t4 U+ |" W3 G; @* L# ` { % m* A0 Z/ w9 u& @
$redirect = $this->uri->uri_string();0 F9 E+ q* J' H9 T6 O3 T$ f
if ( $_SERVER['QUERY_STRING'])
& f+ i3 d9 p2 d/ h1 P! J9 U' W- O& |: G: C6 t
{ / O8 b' t" W- l$ Z6 {# y( a g
$redirect .= '?' . $_SERVER['QUERY_STRING'];% k# m) m$ A8 q9 C( U
" b5 I+ y3 p2 N3 R }
) M) h* y) A5 _8 e' g% W7 @& W /*跳转到用户登陆页面,指定Login后跳转的URL*/. D5 l$ I* P) {3 M1 o9 ^6 z8 A# f9 n
redirect('auth/login?redirect='.$redirect);
8 \3 n2 ~9 ?0 u% ?* _% o
' x# X; y5 J$ v. I: x! f) B }
. f9 J" S% P9 ?
( U+ g2 f; T4 f a }
" U0 z; u# d; H% _0 `
# U' h, ^& {7 `0 h0 ?5 [, E" v: m9 G} 3 w- ~' B5 F: J" H2 J8 @
User.php 9 ]4 g2 V2 w7 O! v
class User extends MY_Controller
, s! X7 { B `( |% L4 U2 ^$ ^; O# C# U; }2 |& e' A
{
" x; L! g, _; o( y i0 X) w function login()$ R: q5 A% e! i- }
: M, B2 Z E; N' o* P" Y {
5 M6 O9 Y' S& u if ($this->tank_auth->is_logged_in()) { // logged in, C; C- G; A/ F! [, x
redirect('/');
[- I6 m0 S4 e } else {1 r: f7 i2 d, }6 ?3 E# H# p8 ]5 Y+ @
//other codes here......) A4 G; G& c* p1 F
/*判断是否有redirect信息*/ S' R- Y! N8 V y5 y2 [
$data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
" T7 ~" e S6 P: Y6 \ if ($this->form_validation->run()) { // validation ok
. O+ |% g9 {3 | if ($this->tank_auth->login(9 a- Z; p" h1 U4 L n e! r8 _& i
$this->form_validation->set_value('login'),
; D) T( z. f' b% ?6 j. D# ~; r9 ], S! s $this->form_validation->set_value('password'),' k2 [9 m5 `! h+ {
$this->form_validation->set_value('remember'),, u6 E! U& O% D% i8 ?# H
$data['login_by_username'],
' ^, I' h# a$ t $data['login_by_email'])) { // success
0 n2 [. z x6 O redirect($data['redirect']);4 k" n+ `( _* v
} else {
3 i7 J; p5 L) d+ p/ N( u //error handling! U% h, g, F% Q- w: k( R
^1 H4 }5 D5 B' E& B8 V4 }% D3 ?
} 0 ?/ K0 C6 X& x' f" K. Y+ w' A
( }2 a( K' `" M5 {" e }
; X& V4 x0 _( m- I: o* G( ~9 {8 J $this->load->view("login_form")
! T% W) q. ~) S8 o, f! j/ M7 W5 c, ]6 |6 t2 T% t
}
$ A2 r8 ^6 i: J: o- N$ f; N! n/ ~! j; s* `5 F
} , j; O" a D7 V& o6 c! N# U* l% o
- _: S& R4 q' ]& ?" V5 R+ B, T
/* , \8 i) H7 y5 p# u4 T6 D7 a0 P
Note: 在login_form中需要注意,提交表单的form地址:
+ T2 d. I/ N* j! n ' f2 o! _5 w4 m- }4 s5 q. j
$ c2 G! ?; f. y: U( L7 W/ t
*/ 7 m1 O' l0 ^' L, v
6 Q8 E2 h( z6 ~5 A: e
}
" F7 x/ X2 {, v6 ?$ ?! n 在login_form中需要注意,提交表单的form地址:
1 n$ t8 D! [; t 5 j9 `) Y; B- c" I/ _% X* `
本文由外链代发http://t.qq.com/wailiandf整理 |
|