|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
' E+ e/ i. i- ]( v Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
6 m) B* Q1 J! Z$ ~ H My_Controller.php ( u; Q8 c+ Y5 G% S. ~) D$ i
class MY_Controller extends CI_Controller, @2 E! ?' J8 \! F* _
d7 K% k% j- n% e
{ : z8 H: v+ ]4 _( v( H9 W
public function __construct()
" G7 X" H/ n1 d$ i) v' C$ `2 z% {( D) s, B/ L
{ " P: R7 P, c% z( s' D* h
parent::__construct();
/ L8 ^6 k. h/ R) k8 L0 o /*判断是否登录,判断当前URL是否是auth/login*/
7 h0 E* V0 P' n! @3 I2 B) c if ( ! $this->tank_auth->is_logged_in()
2 U( S3 D' N3 E- B9 b7 ]+ O( E3 M && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))- r$ ^+ y( e. |5 I) Y, P3 H1 c/ o
' h0 C. y; N+ y. i6 i3 Z; M; f( K" P
{ ' q& A8 m7 m. b: U9 ^( ~7 E
$redirect = $this->uri->uri_string();. w8 c0 U1 K5 w. v/ n
if ( $_SERVER['QUERY_STRING'])8 ]9 @- r3 F! \( f
, A; Z" w% \ |8 q+ p1 o, v: S {
) u9 H0 a3 k/ _ $redirect .= '?' . $_SERVER['QUERY_STRING'];
0 U7 H! ?4 U- B% Q
9 J& x, a) c: X9 Z* m } 0 f5 a; p: y/ U8 P0 w, |6 Q1 ~ ]) {
/*跳转到用户登陆页面,指定Login后跳转的URL*/
! v2 {+ h" x, K. B* |- j( d# D redirect('auth/login?redirect='.$redirect);
) {: l/ L. j" c
, n& N- C7 E0 E# Z }
3 G9 w7 |# t# p7 T4 y& [
$ Z* D7 X" ]6 E* y/ q4 \* G( c }
8 }$ ~' S+ [& }1 P% H
! l' |5 y" |8 F0 X: E} ) z$ u# W7 b, d2 o5 n$ N7 s
User.php
8 a" C3 t1 p! p( `: G class User extends MY_Controller# [% [& f3 p+ v% Z4 y# O* D, w
( f( u/ P- L6 R
{
5 F- S6 y/ l( N* S }' ^ function login()3 p0 v! U4 X1 e
, z9 h$ D. r: l% W' o, k' K
{
q/ O* a% q9 g if ($this->tank_auth->is_logged_in()) { // logged in
: P4 z n7 g, o4 J redirect('/');
: g2 `$ m3 w3 l3 ? } else {# Q) Q4 U- ~4 X
//other codes here......
4 g4 _* p& Q8 _2 B/ I9 } /*判断是否有redirect信息*/+ u7 F$ e9 D$ q: N% p$ \3 ?
$data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';5 l* S0 ^+ O, O% M* Y+ `! L- B9 _
if ($this->form_validation->run()) { // validation ok
; j2 c! @4 b4 u5 y5 S if ($this->tank_auth->login(
2 H$ q+ h$ r9 Y, T $this->form_validation->set_value('login'),) |+ y. H& s& @' j5 G3 n
$this->form_validation->set_value('password'),9 ] a- i6 |$ r' s* [& H
$this->form_validation->set_value('remember'),
! S# F9 v7 q: i, f7 V $data['login_by_username'],, } |. h) s5 ^" m
$data['login_by_email'])) { // success
. E+ }3 \% R1 _* K+ o# V' z8 E0 y, Y redirect($data['redirect']); g* w6 R9 L8 A# W
} else {2 N7 S% M5 ~6 H2 _$ O
//error handling, Q1 L8 d7 n$ c7 l
8 G7 `6 Y. K. _ } $ E4 R4 [9 ?: t5 V( |( k
! l: S7 L+ R9 M' \
}
1 H9 |# P v% r1 m $this->load->view("login_form")% o$ o/ X: h) m8 f, ]* y! ~/ B* W
0 z; S) e! A5 q6 O# t# [4 d5 }8 l
}
( f1 L" r% @' p2 g" o; S% W( l. W/ q) q1 h2 o
}
" V: @, t/ f% M0 x& ^) P1 ]5 J+ P! o% @/ F! I( u
/*
I3 I K. U1 { l% F) b5 e Note: 在login_form中需要注意,提交表单的form地址:* r8 o) B8 P, @# m- B
! d% g" Y6 D/ D/ `. `
) Z5 N* k E. z) }, X- T
*/ ! D! |7 A! `' M9 G' T/ A# U, c
/ j; Y8 ?5 Q! O1 I/ `3 w}
& @2 ]9 X& r; j 在login_form中需要注意,提交表单的form地址:
# g, ~3 B) k7 c% l: H& M - _. R4 B* K7 g) X2 l# S; T( i
本文由外链代发http://t.qq.com/wailiandf整理 |
|