|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
. p, P. N) {. i/ k Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:+ `2 p5 \# W& g/ v
My_Controller.php
, J& i" }8 y9 c% F! ?& i' r class MY_Controller extends CI_Controller! a& P% T ?, k: g1 G, I
* J* h- B% L- J) Z
{
3 c% o; c- i$ |* q- ~ public function __construct()" q3 o+ J" D8 ?$ u
' f. e/ U( d4 Q* C0 u4 p( f! j
{ / [4 E' p) p& S& g6 t q
parent::__construct();- E* P5 o0 [2 @- b- {
/*判断是否登录,判断当前URL是否是auth/login*/# F! M/ p1 ?6 M9 R7 B4 K
if ( ! $this->tank_auth->is_logged_in()
+ | z. {8 g( E) x && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))' L/ r8 e' h( q4 n. [; f! }
3 j5 m* P% v' R+ x5 z {
! s) w8 T5 \+ k, S1 {/ e3 i $redirect = $this->uri->uri_string();+ T5 Y3 a8 x, S* B* h; ^# E
if ( $_SERVER['QUERY_STRING'])
2 _' C! y7 @! [4 |- ]" a+ [7 E( {6 |& }' Y1 ]2 @' |
{ ! f/ V( N" @+ L; \; z; U) [
$redirect .= '?' . $_SERVER['QUERY_STRING']; s6 L% ^ r" [3 c! o7 l7 A
2 A7 s3 C8 a9 B4 T/ c! d& d4 ^, g1 _
} ) _# M$ V8 y# i, x0 {
/*跳转到用户登陆页面,指定Login后跳转的URL*/- _& C) i# s. V: q/ p# S5 W1 y Z, Z
redirect('auth/login?redirect='.$redirect);; X# h5 K6 @3 M Y9 W
+ x! y% f/ h+ F% l: K
}
! M5 G3 y4 S' T4 d" j
1 Q1 r( H' U$ o }
" w; t( s, L8 s( k4 ~6 ?+ I) P1 Y8 v
) C4 Z. Y! {- d* g& H! p. T- {} ' M8 l" R5 g2 O: {& P; K
User.php 3 R I/ v% [" ` S6 R1 y$ w5 v! v% ?( C
class User extends MY_Controller
; J7 j5 p/ n( { S9 P/ l \
, i& b4 W$ X, N4 R( Y+ V{
, l( g: f1 ?8 W+ t# W% P function login()
, T" r2 x8 f) e2 E5 Y. E) _1 b6 i1 W" x0 q4 Y
{
9 ?6 q9 s ?. Y6 I" `" V if ($this->tank_auth->is_logged_in()) { // logged in
4 j* E/ A- g' l0 Q3 P- s9 G* X$ _ redirect('/');0 y. h( w* |8 X% ]
} else {( L1 ~6 E+ Q9 O% p5 Y
//other codes here......
$ ~! i7 U4 n9 n# f2 C$ C6 Y- c+ W /*判断是否有redirect信息*/$ x" V, h2 S% H, N8 h+ Q7 F
$data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';2 ]+ P7 f6 [; h9 T# \. [" M! d) N/ `
if ($this->form_validation->run()) { // validation ok1 d' b2 W+ ^' \' T9 w4 ?3 A% i/ ^
if ($this->tank_auth->login(+ j, ?0 A# @' y# I
$this->form_validation->set_value('login'),9 V* S6 Y- _( S) s& C
$this->form_validation->set_value('password'),% z/ \7 D+ _$ x. ^
$this->form_validation->set_value('remember'),
, V) R: `9 z% G) K0 h $data['login_by_username'],; m3 G' F0 x& A- @9 M
$data['login_by_email'])) { // success H/ V% R' O- |4 g4 M
redirect($data['redirect']);2 M: A6 f" M4 |7 Q3 r. @$ M
} else {8 ?. N/ B9 Y6 t e* F7 B
//error handling
& B4 y! ^4 K7 H9 Z- W$ U
' F* {' P1 p; Y% U# H9 n7 ]( f) h } X. u0 c2 T; u
8 g0 n3 h+ j1 m8 Y2 h' O6 ? } 9 {7 w9 Q0 Q8 Q# L H) D
$this->load->view("login_form")5 W) @' P# U9 p( a! F& B) O* W" M
" U: L0 x' }7 z% V" j8 M }
0 A, k$ J* x9 n2 f! X/ r j" N' ?
t3 @& ^4 g5 w+ i8 s+ I }
0 y3 T1 L+ M4 z: \* j- W+ D1 K* @% ^( \( B4 ?
/*
5 m6 K% D o# @ Note: 在login_form中需要注意,提交表单的form地址:7 J6 q1 k+ M( e3 @6 G& Z% ?5 N
8 m+ Y: l+ o; |% |* B1 w8 Q
7 F [+ x) f8 D*/
% u, q2 T* q6 Z3 M" t
& {# z1 ~) Z$ V! `# x: Y% M}
+ y6 M3 W2 g7 ^9 ~+ O$ k* t 在login_form中需要注意,提交表单的form地址:' l* K# n* B9 O" A0 f4 }/ j* u
3 P1 E/ K# F. l1 D$ f' q本文由外链代发http://t.qq.com/wailiandf整理 |
|