|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
% [5 f1 [3 ~" \2 V4 w! C! w Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
& P, M- o/ u+ S* ]+ _7 p7 w My_Controller.php 8 P3 A* x- c1 D
class MY_Controller extends CI_Controller
9 {) B3 L* F1 U% G$ t
2 `4 J _% g4 ?' [{
9 S# C5 c. a' b public function __construct()* N+ I* l! L( q* `, D
4 W0 _4 Z4 g* {0 o+ l" r- p8 {
{ # ~# \# n7 h! \2 ~% U
parent::__construct();! k# D: ]# p) l/ n
/*判断是否登录,判断当前URL是否是auth/login*// k" z+ w( p! u* R& z$ l, Q
if ( ! $this->tank_auth->is_logged_in()
/ G9 Y7 n2 m' Q2 |# b && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))6 A( \3 B' I4 U) \7 V
) L- R1 Q$ d& }+ g3 @! w' o ?! m! @ { 9 R! ^& L- H% j+ g( }
$redirect = $this->uri->uri_string();# \7 s$ |' u _. [ L
if ( $_SERVER['QUERY_STRING'])7 u4 ]5 p% p- \( S1 }" T
& q0 o# Y# G( ^5 b { 2 k" e* F, ^8 x: u& M; z+ h
$redirect .= '?' . $_SERVER['QUERY_STRING'];" `# L& O+ ]$ i4 a* i) j# V, Z
, F+ I4 z* ^/ Q1 A Q8 z( h } 2 r# x! N7 {/ K# C6 G
/*跳转到用户登陆页面,指定Login后跳转的URL*/2 Q! P* d+ \. c- t' @2 y
redirect('auth/login?redirect='.$redirect);
/ p7 }* L0 L. w, J) B; ?$ }3 {; ~7 ~- B+ r3 ?
}
+ f5 p! J* a @1 e9 D6 G; ^& E% Q& a, ~4 f1 N) Q) z9 T# r. C% G# G7 D5 P
}
! g8 a% [6 K: [& [1 e1 g
- V; e! j ?- j; f. v} $ o' _3 D4 J/ m3 M+ a7 }
User.php
' A+ N p g# _$ H0 i5 D class User extends MY_Controller+ G; N! T% i( R( @ U
+ i4 t6 ?) D. i3 \) k; v& J
{
# ?1 @' k+ P) ~, ?: O function login()
, O1 G# i, ]- c7 G8 R, S9 Q1 p# a& X4 M" E2 n, X
{ 6 z2 y2 f2 U4 u" `. G2 [
if ($this->tank_auth->is_logged_in()) { // logged in# D1 m+ D: ~# q' h% J
redirect('/');# _" T9 ^6 W6 v: G8 i
} else {* {1 q, D1 W9 H. s5 l
//other codes here......
" M: ], y, s5 |" K, N' p" b /*判断是否有redirect信息*/
7 q! M( h( n3 \4 N+ {- I# R5 x $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';4 t1 c8 [5 o+ p7 v+ G
if ($this->form_validation->run()) { // validation ok6 Y* Q' {6 p1 Y6 m9 U4 P
if ($this->tank_auth->login(- [ E8 o* @1 m" }
$this->form_validation->set_value('login'),0 l- B' O. u2 A" S" p- y1 O2 f$ k1 A
$this->form_validation->set_value('password'),
+ w) Z4 U/ Q" B* }5 q $this->form_validation->set_value('remember'),
6 Y) ?$ l0 G( z. t* g $data['login_by_username'],
7 v. x7 K9 Y. d! I# u* @& o& Z h $data['login_by_email'])) { // success
& t! g5 k9 X# w redirect($data['redirect']);
8 ]; Z6 [/ E2 m5 ]5 R# H' ^ } else {
6 {# w1 [- ]+ i0 t# k //error handling) T: H6 q+ F: u% ]9 j
% X' D4 n3 M. V/ f- D" b } 3 F9 ~6 h$ L' ?) v
5 P1 ~2 Z, a9 d5 p: R! P, S }
1 x j3 M" ]4 `; U# L $this->load->view("login_form")6 y+ d! J! g! {, Q
, _( I, _& C3 X } 8 R/ V% s$ r. o9 V+ K+ b3 N* w; T) D
V5 t- }. {: d" B3 D } ; {+ u& X! ^0 i$ |6 a
e" l! G O8 m; K0 k6 k/* 1 M) R. O1 n" `, ^
Note: 在login_form中需要注意,提交表单的form地址:0 Q+ j* C. W8 c$ a8 t4 \: Q# Q& U
$ Z! o+ C: n# h- h z
% j0 Y, Z2 d" S
*/
0 O5 q0 @7 @, h. W: P( v* `# L* d2 w" o+ x& N
} : \/ }5 T* `4 j y5 h
在login_form中需要注意,提交表单的form地址:0 B% I; k0 _/ t0 k. \# f" A
7 s7 S8 h2 y, t9 ^+ n9 Z
本文由外链代发http://t.qq.com/wailiandf整理 |
|