|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
9 {/ v4 N% {9 t4 ~$ Y( v Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
& ~/ b. d% `0 N. d My_Controller.php
( E# ^5 B% B# b8 K$ O% Z& b class MY_Controller extends CI_Controller3 y5 \( n! _; l' Z4 A1 K S9 m0 S) K
# [, r5 o) a3 a) i, l{
! [, A/ R2 e/ _' K) n5 x/ Q public function __construct()) q( |& u" H# G
?4 q5 x7 M1 k W% u% u/ W8 q {
/ H3 j$ n; A* q7 W: C parent::__construct();% |8 U- b% ?$ q! }! m% w
/*判断是否登录,判断当前URL是否是auth/login*/
) q; h) n% T. c! { y9 { if ( ! $this->tank_auth->is_logged_in()3 h' d" P: u" q! _
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))* A, M$ c- a0 ?/ r7 B
8 w) O: a) f0 X V+ U {
7 L9 c8 ~4 K9 ?( j5 Q3 g$ G! u, A $redirect = $this->uri->uri_string();8 F5 A, \8 E% @
if ( $_SERVER['QUERY_STRING'])% b* v. A O( a% ?
, \4 }3 D3 l+ x5 j6 K* s {
1 e) }0 Q( a3 f" ?, @* D9 ? $redirect .= '?' . $_SERVER['QUERY_STRING'];
9 ^: l9 a* m3 q1 ~6 J) Q: s: }1 ~. p+ B/ n \# c* S- H& e
} $ `- ^! \" \. L
/*跳转到用户登陆页面,指定Login后跳转的URL*/
: h% n7 `! u% a, d, K( P redirect('auth/login?redirect='.$redirect);3 o( G% D! S1 D2 t8 {
8 s& q, `* H5 Y, F! ~/ N+ p } $ S8 P e. F+ a( U, J' O' L7 f5 R
$ c% U( W2 e% ~
}
0 Z% P3 K a& L# \% ^
$ o( @( _ J% C% _} : i9 @9 z p2 ^% E% D
User.php 8 @4 P/ `* Y" ~ ]1 _, W$ [
class User extends MY_Controller
( ~& N: ]" N1 _$ q5 m; D# w. ]$ }' K# U6 E9 T; r
{ 4 D% X2 y6 i2 v; x U2 ^
function login(), z$ r- b1 ~" a
7 r8 ~5 z4 D0 v7 ]
{ ( g7 h7 p6 ~9 ?6 n; A) s
if ($this->tank_auth->is_logged_in()) { // logged in
- w' X' m# h: d8 F- @9 m- K redirect('/');# I( l4 i, K) [8 r6 m, L+ J, V
} else {
' y* u/ k0 s/ e% l5 G: d //other codes here......
' c* K, g& K$ H& [/ \1 D4 a /*判断是否有redirect信息*/
5 W, W$ G! O6 E; c9 n# ~ $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
$ o! ~* q9 x; r/ Y* R if ($this->form_validation->run()) { // validation ok7 ~3 J+ w8 y' I+ n+ _! T/ |
if ($this->tank_auth->login(2 T: E2 L2 T: A/ \8 W3 v
$this->form_validation->set_value('login'),
6 y7 _( j: H; ? $this->form_validation->set_value('password'),8 s+ z/ Y+ a6 [) Q+ l
$this->form_validation->set_value('remember'),
8 n1 l: K( K% b* `7 k $data['login_by_username'],3 c0 U+ X$ ?! W: b# p
$data['login_by_email'])) { // success
: k# v7 v" ], j: K1 A redirect($data['redirect']);, T9 f6 O% q% A9 ?7 ~8 U$ |3 L
} else {& A9 K7 v- \. v6 _0 N5 D9 z9 D i: o
//error handling
: p5 R) ]) c6 U+ J& c
" e9 D3 L. ^6 W8 \$ P% }2 B } - i5 d) n# d' {' e0 U
. }5 n6 r h6 x. d5 K$ [
}
& S% q7 b1 W5 ]: h) A+ L% m $this->load->view("login_form")
s/ a. ~7 g2 q8 u
$ K& ^1 a0 G1 P0 H } - N% c- g0 n0 `2 o
7 J+ v0 G* h/ v( ^1 e5 M
}
3 h: b* y5 n2 B6 u1 G! R
3 A/ _4 @8 E% _/* 4 Q8 U/ K2 h" h/ r
Note: 在login_form中需要注意,提交表单的form地址:
. H1 m5 X/ K) N W: E6 @: `8 {. F$ }# `4 W
2 |4 j( X+ |5 A( m*/
1 m% h3 I# ~! M& ~% ]# L, K
! I* f4 {+ q/ z1 D- P; M# O& N: n8 q}
3 V$ e- X" q! _4 _' P; P* J 在login_form中需要注意,提交表单的form地址:
6 P7 e/ E2 h7 x6 x , P, F( ^. A: _1 Q. `
本文由外链代发http://t.qq.com/wailiandf整理 |
|