|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
y4 r" i5 k$ R, v( |( z Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:8 g$ {9 O1 |% j6 F
My_Controller.php
B, C+ E6 `, |0 o class MY_Controller extends CI_Controller6 A2 m" E, G- o
# ^5 a" I5 k3 ^! T- z+ Z/ r7 e{ # Z: y% Y& M& i; O4 Z- Y5 e
public function __construct(); `# p. G. @& a/ b
0 u7 S! q6 N2 z' T2 _$ u {
3 G5 a+ Q; S& P, P) \* g# \7 H- ] parent::__construct();! P9 V+ ?: v2 i! X6 I; P
/*判断是否登录,判断当前URL是否是auth/login*/( Q& V8 j' ^1 y1 N4 r; S
if ( ! $this->tank_auth->is_logged_in()+ L! e2 o% _) }$ R+ O; f/ }+ L
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))$ Q: X% r4 F3 d# j5 X8 L& d
" e1 q" o% Q4 [( y {
* }7 \: j+ ^5 }% g2 W $redirect = $this->uri->uri_string();
0 W b+ d$ N+ | I$ _) O+ z9 ` if ( $_SERVER['QUERY_STRING'])
+ t3 ?; E4 s1 l8 {' a* P0 M: `. x5 d/ H' g
{ # b2 _+ ~( j3 {, X9 b
$redirect .= '?' . $_SERVER['QUERY_STRING'];& ^) }% F3 q' J/ }, t1 w
9 I g8 D; |+ S, h# H& T2 U. L
}
( @2 q% E3 X* F; G) h; _3 n4 t /*跳转到用户登陆页面,指定Login后跳转的URL*/" R( T' x7 P$ o5 j5 }
redirect('auth/login?redirect='.$redirect);
$ i' P& D2 o4 k G2 s
. x# ^2 c, V/ C6 j, a/ r$ Q, O( q ^ }
$ f. U/ Y8 J' S5 }/ ^
+ k" [( H' C+ F0 I# l- ]# ` } 1 A) x" O4 n* h; _7 |& P+ Y5 }
; B7 ^& J$ x" } b# p6 w} - G% V; B; q* c& \) z% f
User.php 8 M: F6 i/ i5 g
class User extends MY_Controller
7 v" J, U: \ q. |$ M2 B. t+ `* z
{
2 |0 b3 V( Z- d# p8 g$ h$ C function login()
! L# i( A. l( Y, h9 G( m; s% C! {- |2 s4 X3 x- l6 s
{ 6 g5 o* V; t' i# U* W6 e9 s
if ($this->tank_auth->is_logged_in()) { // logged in
. B" y5 \8 e F7 M" ?, R2 C% I5 S. p redirect('/');2 t$ t$ S) ~. A! f) K. d; n
} else {
- j! x* G. A. X5 I7 ]$ K/ o //other codes here......
/ X# x* x7 f' V( a' E /*判断是否有redirect信息*/
; A* Z# S9 E/ g4 E6 t; @' S $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
0 v i! u! M( q9 A/ Z8 Z' h! A% | if ($this->form_validation->run()) { // validation ok6 |9 T$ i0 y( K6 [
if ($this->tank_auth->login(
C7 B9 K& W' T, e$ y$ N $this->form_validation->set_value('login'),4 a& V/ {5 P3 O4 ?
$this->form_validation->set_value('password'),4 ]4 J1 \' J& g: @
$this->form_validation->set_value('remember'),* B3 j& R9 N! r8 X
$data['login_by_username'],$ {% X9 \8 |! o8 i2 ^& q- C
$data['login_by_email'])) { // success5 Q* u) }+ Z, E4 {3 {" s9 {
redirect($data['redirect']);' B" u" z# _9 \+ d/ T
} else {
9 W4 S6 J' q" H( {- W/ j //error handling
. j$ l K2 d& p- }$ V/ \1 ` k- h' w- G5 ], a! \
}
3 J) `, ^0 y9 w) V. h# f
9 \0 Z, R' p" y z } 2 Z: u4 {6 a0 W
$this->load->view("login_form")
8 J7 D" m0 s' g/ A- o; B) D# L! O/ N4 S( ^0 L
}
% V5 i5 S0 ]& s, Q4 l
/ h1 N: j1 U6 ]( i& o }
8 o0 b L! ^/ f- f! Y, o$ @6 x. Q( Y
8 O! z2 E3 L7 K1 [# K3 {9 I/ g( }/* 2 X, h: R" P. P6 ~; t' b. l
Note: 在login_form中需要注意,提交表单的form地址:+ G: E1 M2 U3 q. v" L
% w* M; g: h( C R4 B0 `
2 d) Q# l5 }7 X3 A2 d- P' O*/
+ g8 O- C+ M! D# x8 [) l* R
9 V7 u- `' H5 R3 J: m! Y8 N0 A# d" }} / F& b: f& o6 s; {+ B1 h6 k
在login_form中需要注意,提交表单的form地址:
' K- b! p9 q$ R3 L6 M. a- W " ?" I6 ?7 `* | ~5 o
本文由外链代发http://t.qq.com/wailiandf整理 |
|