|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
2 F! o6 G, w: l+ f- R) _1 k- H g! Q Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:, s- x$ b& g% F
My_Controller.php
2 P* M+ A3 f5 z; y/ C7 Q+ ?8 N class MY_Controller extends CI_Controller
" c* R+ `2 {0 ?8 y' G
& o' `: p: ^4 n" p$ Y: f{ & g, ?, B9 ]1 y5 [- M$ x
public function __construct()/ ^. }) l# d1 F6 c& w
2 g: R: ` F- Q) } C N
{ 5 \# E e3 _: i- h
parent::__construct();
6 l& \8 u9 {& z) ~- Y/ M/ v /*判断是否登录,判断当前URL是否是auth/login*/
# v+ ]" V4 B5 M* `. a if ( ! $this->tank_auth->is_logged_in()+ m* g3 j1 Q. j) V/ C3 y4 K; r& o2 m
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))1 ?$ {, b; ~5 q& J' y1 Q
; ]; }# }* w. e2 v { 6 b( K- l7 D5 p
$redirect = $this->uri->uri_string();- f1 ?7 u: J d V/ h
if ( $_SERVER['QUERY_STRING'])" f; y8 e" d( {$ g, _+ k
6 w! B: W7 u. `- y6 m, { {
: N# T$ x0 K6 o! i# h& y $redirect .= '?' . $_SERVER['QUERY_STRING'];
# N' |* X2 K) Q; m
/ N' j Y+ {6 L6 M! R% k9 r/ p }
' U1 x" ?( y, L% h0 ^ /*跳转到用户登陆页面,指定Login后跳转的URL*/
; q8 A% |( t$ U8 I0 z redirect('auth/login?redirect='.$redirect);5 F! q5 N" j8 w. y
! I; m. G/ S S& } }
( g4 N" n0 n# I5 K- s
/ F, e+ D% l- P, T } 4 g. F9 h* P/ H- d# F
' L. t J7 w0 m) E} ! H. H! t7 G$ L; ^/ Q6 A
User.php
0 i. w. }; b4 d, N5 `* b5 [ class User extends MY_Controller3 m' r0 O& _7 I L* s- Q
_; r# E- z/ P( }$ J! p* W3 D
{
/ d" Y+ ^: y9 b8 N& b* G function login()
P( @2 O2 H; t: D8 q: I0 F( W* r( T+ |7 r5 W
{ 2 Y/ x4 B/ n( ~2 o+ t3 W) s, Y
if ($this->tank_auth->is_logged_in()) { // logged in0 T+ {, h% l1 s! ]: K& w6 l
redirect('/');
6 G0 g# y- m0 ]. z0 X+ G* k) v } else {
% W7 v# d0 g" \: D. v //other codes here......
. [$ Y, c( {0 P2 @; p /*判断是否有redirect信息*/* l4 G- ?6 G# K
$data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
0 G5 ]# g# [! q" i if ($this->form_validation->run()) { // validation ok
. a/ h7 f1 `& y, z% O if ($this->tank_auth->login(
7 Y9 T, @! R4 B% [3 R $this->form_validation->set_value('login'),
# {3 U2 K, I9 V* S" a1 _$ U+ I $this->form_validation->set_value('password'),1 Q- f7 D% G$ O" C& ^. ]) t! H
$this->form_validation->set_value('remember'),
b' F% a4 P3 V( V, L $data['login_by_username'],. g Z; s& J$ q Z) M. l5 ^: D
$data['login_by_email'])) { // success: j* a* q5 \) s: E3 y4 {" h
redirect($data['redirect']);; `9 C: B# a/ C" a
} else {. O' i( h& F' v9 N5 ~. w
//error handling
4 E g1 g* t+ `% q1 R* ?
1 Q6 \5 ~3 F' b/ S# d } : L, r& Q' T& ^$ Q: d0 j* ~4 q4 W
) B% d* `5 o; H2 w | } ! Q5 a& z% o M' I/ k8 t
$this->load->view("login_form")
) c n. P; m" V6 v. I/ z
. g4 w0 v2 E6 B* z% K9 Y& z+ P }
6 w b8 J: z# j! d3 g. }7 d+ D; x. \* _/ k3 _* R
}
3 ?8 W- A' p, \7 A) A; e) Z, s/ W7 ~$ [. @- f# m. M
/* 3 z. b# G* Q( f8 r3 B* H) N1 U
Note: 在login_form中需要注意,提交表单的form地址:
7 \1 k5 F V( \8 ^
% S# A4 [" U# D' A. C7 r% A3 f: T2 {& i" e% v
*/
4 @2 A: J7 G6 g" }- [; a; g0 s1 c
' h o3 s/ [* y' H" l2 u" e8 d- s}
" @2 C: Y- U$ v3 k! A. t, l8 `! h 在login_form中需要注意,提交表单的form地址:
& A u% `. X7 D5 y r. u, h
i# E" r' B( `) _本文由外链代发http://t.qq.com/wailiandf整理 |
|