|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:* m* a2 J9 E$ N! K/ u; R- k! @
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
% i2 t4 O: @: m My_Controller.php
) N5 v J7 |6 M2 s; Y class MY_Controller extends CI_Controller$ t/ P$ ^3 B/ L# ^- r* r: n
8 d- x1 e, `0 x, P
{
1 q% V: l9 d- g& ]( s public function __construct()
0 ~8 ^) }1 o% f6 G6 `1 d) F& O5 l2 D8 Z+ K
{
% N* M- r; a- T/ a parent::__construct();+ p& D( @6 K( o1 Q M) J
/*判断是否登录,判断当前URL是否是auth/login*/
5 q* L v, D1 a( B5 l X if ( ! $this->tank_auth->is_logged_in()7 J6 P# @; ~1 U
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))
1 E* C8 x+ j& u* ~9 T0 t! ^
3 v0 J2 W; @* i2 Z2 X- h {
! P ^# t, D# f. W $redirect = $this->uri->uri_string();$ o: ^) e0 `1 M* A1 v U! O4 f1 h! ^7 q
if ( $_SERVER['QUERY_STRING'])% ^% W2 y. B% {2 ?
- l* f ?! V" W+ |& V8 v c { & T; E4 V) @( c& o4 o/ ~/ m
$redirect .= '?' . $_SERVER['QUERY_STRING'];
: u+ R) V5 T" Q, `# t
$ T" T: h9 p. H2 [3 d } ; {3 u, C. I# n6 j. K% \" r
/*跳转到用户登陆页面,指定Login后跳转的URL*/* h6 D* x' C/ a' H9 b5 c# I
redirect('auth/login?redirect='.$redirect);0 b1 Q( z: J( s, p) n' q) y+ P
# L, j2 ?9 ]1 N! R0 n, ^
}
: L2 `7 p/ z9 q# z, K" a
6 C" O" K. s0 t# ^- e2 t6 r! r }
' \0 o# x0 f& q' D' k2 @9 D/ \' ^0 @
} . n( o( Q1 Q5 U# S# X; I2 b
User.php + o3 h% H# c& x/ V' q+ O
class User extends MY_Controller
- X: W# r; F$ s G/ j/ T4 X! m7 g4 D( u b* r
{
9 n. F# m4 Y' v9 b# T+ k0 J function login()
# n p' c% N. ^$ I/ R$ B4 t% y) F: ~- N7 u
{
4 P* J6 T3 H0 `5 k if ($this->tank_auth->is_logged_in()) { // logged in
( W0 F9 I1 e; a redirect('/');6 C* \" y8 b. V7 b4 Q0 y8 M
} else {
1 e; j' R5 r0 J2 Q //other codes here......" U M I+ |9 X8 `
/*判断是否有redirect信息*/+ S5 r5 s9 ^7 K. |- v
$data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
( P9 T$ ^ v# d* v: B% j4 i if ($this->form_validation->run()) { // validation ok' w- M! ?# O' ~$ N0 p
if ($this->tank_auth->login(
+ _4 w8 B- q+ f5 H P $this->form_validation->set_value('login'),, V% v8 T; E* [! H
$this->form_validation->set_value('password'),
4 ^- u8 Z* S1 |8 z $this->form_validation->set_value('remember'),* f# C; n/ M' \- q8 D. X8 O
$data['login_by_username'],
' M1 v: R0 @6 R+ k" w8 u $data['login_by_email'])) { // success
# B7 n! [# U( H- y# v1 B8 O redirect($data['redirect']);
9 H, f/ ^2 N) r {' Q } else {
9 r6 I$ I$ l3 n0 Z$ Q6 q: B, b //error handling
/ p$ J. M# V) y' R+ l3 h
( Y; B. o Y I! a }
+ l6 ^5 `1 W5 i) h: x: E" q1 T$ u+ t' C! t. l
}
6 M* I! P* F# `" R- q& G $this->load->view("login_form")7 Q1 T9 A8 X& z
3 Y# f9 I$ n+ i: s" u7 y: O4 F5 J$ Z
}
; J1 @" r0 y0 k/ Z& H4 c' G/ i- U+ f2 v1 A5 }# M6 p& O
}
7 o5 g6 A% C- R
8 a- R( N0 A# N/* 9 p9 L/ q* }" @* Z1 R
Note: 在login_form中需要注意,提交表单的form地址:. p( W3 g7 m( O0 Z; U' o _
" s. z9 M- N5 \$ o/ j. P7 q' Q! e4 t
*/ . `7 @) E& q2 j4 y1 I6 {+ P( d
7 ^! y2 a9 P1 d' f# p0 y7 m8 r}
7 t8 e: \, H) v ? 在login_form中需要注意,提交表单的form地址:' ]2 ~" L; j n8 R; U! [
\7 \' r; M2 o. B' q
本文由外链代发http://t.qq.com/wailiandf整理 |
|