|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:. f4 b" |, `7 o! V
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:7 w% _, Z$ v7 A+ Y8 L) ]
My_Controller.php
8 {/ G H& R& j; A4 S class MY_Controller extends CI_Controller
/ P0 \* ]0 w& Z8 o1 `; f# ?. v
; |* J' `. S) e. k: r, J{
4 S6 w& C7 C" f/ k& Q5 c public function __construct(), r5 _) E5 T" N0 D# @! d
1 ~) S& b, g2 g9 z# l& |# `+ U/ P {
9 }* j. h# }# [& ?' P parent::__construct();" S* v0 @& U6 ?8 B2 T6 X
/*判断是否登录,判断当前URL是否是auth/login*/
4 X! J7 c- @6 o* i2 k- v) |6 k$ w if ( ! $this->tank_auth->is_logged_in(): Y4 w( F! S% Z
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))' y$ C/ s6 s& r9 {$ F. r X. h. t
) ~+ l: g7 b. `5 H9 n8 I. F { % X; Z; V+ f3 s1 Y, N
$redirect = $this->uri->uri_string();* U* M9 G; M- e: L" \
if ( $_SERVER['QUERY_STRING'])
' D' b G& d5 E7 Y( L# z6 m3 p/ o6 n) ^: T( G. J- [
{ 5 a$ I5 x+ R! J: V
$redirect .= '?' . $_SERVER['QUERY_STRING'];
( \1 r& {1 Q" J$ U3 y: \" W% `, \
} 7 {9 A: E9 B( E& O% Q( E. N9 E2 N( t
/*跳转到用户登陆页面,指定Login后跳转的URL*/ e; \4 [, I& m
redirect('auth/login?redirect='.$redirect);$ I3 D! I- s, _; a
& Q/ `% _$ f9 B8 k9 y } . `0 D+ W u9 [" v/ c
8 @5 ^* d9 _9 e; O$ V/ ~) z/ k } 7 i( ]2 H# h: a) k
* f: }4 t+ O6 k}
1 V% z# ^* i1 e0 J* A User.php # e2 u6 w6 T7 h2 X7 X
class User extends MY_Controller
4 R8 M7 ` C. c& Z+ }4 _; W. M1 c/ L8 C' j4 b W
{ {7 P8 E( N. m9 m8 I8 P- P, w
function login()0 |# M4 t* i9 m
; E9 q/ e" o; H7 Y8 w: {
{
1 K, w7 j( d+ P' D- M8 a8 j& k if ($this->tank_auth->is_logged_in()) { // logged in( ?9 y. S: Y$ n: L
redirect('/');
. H( n; C+ l6 x! ~; [# a } else {
9 S; V7 x$ G* }% | //other codes here......
# s. C% r5 ?( N' n) n1 I /*判断是否有redirect信息*/4 c: B6 x% Z% P# P- ]
$data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';' j2 @' ?- M, ~: p B' f; M' T
if ($this->form_validation->run()) { // validation ok
2 D, ? Q. t3 @5 y6 s if ($this->tank_auth->login(, N r. {0 T- D/ B* l* m
$this->form_validation->set_value('login'),
. u0 e9 ^+ j# X3 w, t& p% ? $this->form_validation->set_value('password'),* C2 |+ S2 [: H0 B$ Y% t
$this->form_validation->set_value('remember'),
) r; ~: \- P6 V/ E1 ?/ ? $data['login_by_username'],
( b& z) b/ u m& T7 w( o $data['login_by_email'])) { // success
* |. s) G, s/ S# y redirect($data['redirect']);
% K7 q5 E3 j' Z7 _ } else {; c* v/ G% e0 v p7 M: L$ p
//error handling: x" l0 j0 H1 w
- q$ @/ y# X( M( y$ u
} 7 |* S% M2 R1 o- s3 X
- R. ~; \, c7 I9 D } 6 ^. r. T: O) B0 Q$ Q6 O
$this->load->view("login_form")% Q- T; |# u1 h6 o( A/ l/ q! J. Q
; |; Z+ R G7 I* K8 n% S
}
. v: J2 p- k+ z! l0 w+ w* g# a3 Y0 V4 j# L7 r9 }
} ( X# _) G" M0 t, d) T: _1 l
% |. d: Y! R0 W" b' O' F
/* 2 ?9 s; W* v/ n" G1 O9 i6 t
Note: 在login_form中需要注意,提交表单的form地址:
* W) L+ d( U' L. j# I& r
5 |* H1 n9 T- g6 Z- G6 g
* Q6 C6 f2 m* t) ]8 s ^*/
! e9 d* m: R/ }; Y) b* [0 \
6 u! ?4 v! a; n; b} 7 G) E. V8 E+ S: T9 c2 S7 F
在login_form中需要注意,提交表单的form地址:; E+ L, p' w% w& O
( C6 e8 G8 u% p# a [本文由外链代发http://t.qq.com/wailiandf整理 |
|