|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:' Z+ F4 n- I' N6 y* N
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:+ l5 y, x% D9 h% Q+ l$ V
My_Controller.php
: P4 p) E6 n7 E! n7 s3 l- ? class MY_Controller extends CI_Controller
5 H2 g0 Y( ?1 H6 G5 [' s( O3 Z O: Y' ~* m2 l
{
$ H5 M8 c2 K: n8 O3 ` public function __construct()
& d' h0 k7 |8 E# ~. C
7 S$ Q T4 T L5 \, ] {
7 F$ [) c8 y* r/ E1 T parent::__construct();
. J4 P! L8 d8 l- K /*判断是否登录,判断当前URL是否是auth/login*/
" v8 f+ r, J! R1 {. b, n$ K9 J+ w" v if ( ! $this->tank_auth->is_logged_in()9 W- o0 W/ H( c: C+ W
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))
! w: O% l R, M& ?3 e. D9 M' v( U, J
{ $ G b, Q3 h+ b6 L7 c- l
$redirect = $this->uri->uri_string();
8 E X+ I9 E; k& H1 S if ( $_SERVER['QUERY_STRING'])
. N# ^2 z6 T4 C9 ^/ P- j! k( F7 N' V0 X/ c4 a7 }
{ $ E, d4 Z4 e. K& s) \% @9 z
$redirect .= '?' . $_SERVER['QUERY_STRING'];$ s5 `7 _6 X8 V$ c
% |% U& m# n9 o, ~1 A8 L
}
+ K# d. }$ ~/ K( }" E% c /*跳转到用户登陆页面,指定Login后跳转的URL*/
5 b D( H7 H: T P) J# ~+ X: R redirect('auth/login?redirect='.$redirect);
P$ x: u/ H& H+ Y& [ o- f
( b& v) j: Q# V9 J } / ~0 F- d; M% q- p
$ d' R! }) x: H1 w6 _1 C* C) o3 I }
& M' }& z0 p( |' E4 S7 C/ [; }1 r* s
4 ]' t8 h% g8 w% g3 Q/ e+ F$ E}
4 v, E$ E/ z3 C u# \: Z' W User.php
: |' u$ t ^9 E4 z1 _ class User extends MY_Controller# g1 e8 `# d2 c# J' v! A2 e3 A
, n# S& e# z5 \& g% o
{ , ~7 o: u+ ]; o. y r
function login()! Y. K6 N2 Q0 q) H+ A
: ?$ D( g0 e( r9 E
{
' W9 A M; U8 x; U: T, d& n8 ^ if ($this->tank_auth->is_logged_in()) { // logged in
+ j! @# ?1 t" K+ X redirect('/');( v. z. \ y( I- x$ k, z
} else {
5 `- d( t6 X# |$ K, P# R" d+ Z //other codes here......( y; I' @1 `+ o
/*判断是否有redirect信息*/! ]9 x6 o* {: d( q) ?, L
$data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
3 T6 }/ W/ D3 E- p if ($this->form_validation->run()) { // validation ok2 |( U# A6 k: X+ ^
if ($this->tank_auth->login(4 N. {9 D. [/ p* Z; S
$this->form_validation->set_value('login'), z4 [9 ?" j/ h/ z" V
$this->form_validation->set_value('password'),: ?9 [- G% G& y" `
$this->form_validation->set_value('remember'),
]: r. d' Z$ a$ N, F* D $data['login_by_username']," d6 Q! p# L1 s, I$ b% v* U" E
$data['login_by_email'])) { // success
. G! {$ [4 G* Q( U5 u+ T2 t2 k) d redirect($data['redirect']);4 q* j9 [7 Q8 M4 S" A
} else {
: R2 |* i+ p6 ^) p7 t( ^ //error handling
9 m( i: o i- a. t( c7 f5 w
6 x( M, ?" {; w# U. x7 f }
* M3 R* ^/ P, [- g9 M1 |( l- x- j9 ]
} 5 \2 a$ @" I M% a) E Y+ X
$this->load->view("login_form")
" h o# ~* N1 s% h _; [" p
: U; W( D5 \1 r2 E8 Q" k } : o: s k7 o" l& C& i
8 V6 S" N( s6 p! H
}
3 Q' ?2 L, }1 d! K, p( p9 {7 B" u1 J
/*
# }" x& M) v$ a* J# n, G Note: 在login_form中需要注意,提交表单的form地址:
2 s; D3 k8 }6 X/ c
1 P3 X, h' ^% v5 P0 i$ Q
8 o/ `. Y, @- _! l*/ 7 W/ T5 w: w+ C" L% ~
1 ] Z W/ ~ a" o8 P; Y4 p} ' T$ F6 Q; o* s# D# y; ~
在login_form中需要注意,提交表单的form地址:
( G( x |5 X/ p5 K! q ( f8 \, {8 U9 E& l# B
本文由外链代发http://t.qq.com/wailiandf整理 |
|