|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
/ C6 G! q( a. t1 \2 Z Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
- j+ f7 S8 g9 Q: H My_Controller.php 0 ?. [& M0 T5 O- V4 N
class MY_Controller extends CI_Controller$ T7 z) e, F3 q! F8 U6 t3 }
6 D/ |* @/ S+ L2 k7 o, _{
$ W2 G8 G" j+ ^7 Y N7 S public function __construct()8 w( n' ^- N/ E1 N1 X
5 \" ~1 C d- F6 e# ?! {+ e+ W
{ ( X+ u, X& N6 D$ Q* \
parent::__construct();
6 F, }$ e$ A8 K- s /*判断是否登录,判断当前URL是否是auth/login*/- O( z8 J* T1 t9 _( l7 Z
if ( ! $this->tank_auth->is_logged_in()$ U) m9 d& t/ A" A) Y, d; {
&& ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))
; E, c- M/ _/ T" y! P1 W2 D; z' ?: ^, L3 U6 T
{
& i, B; H7 R x$ q, U, W3 x0 g $redirect = $this->uri->uri_string();% N3 _2 _7 ?3 _. {' Z
if ( $_SERVER['QUERY_STRING'])# a8 D! x& p4 B+ \! X q
7 X/ b8 U; `+ O- ~7 I4 t1 x" ? {
7 l: y6 u- i. f$ A0 g' h7 H5 L $redirect .= '?' . $_SERVER['QUERY_STRING'];7 [+ j( \; x1 I, {
9 B7 w/ m7 V: Z# P2 T6 q! ` } ! Y9 Z9 e) T* R' p% M5 h) j
/*跳转到用户登陆页面,指定Login后跳转的URL*/
& h7 r; p/ Z& I redirect('auth/login?redirect='.$redirect);
, y4 D4 w7 @' R3 F. h$ j% ^+ d+ G+ n$ ^$ l
}
{! _( Q4 x p- `% a! d
0 i: z5 R* z; n+ E } # d9 V: Q7 E1 j/ u& A
% H% g, A! E5 p+ |- m& ?* ]
} 3 \& o. p. R7 x5 _0 f
User.php 8 e. N6 B# t% Y" F2 U3 F
class User extends MY_Controller s. {7 x2 y' H/ S2 F
, t% @( i& x$ a9 [" ?) v& M+ r# G [{ ( g7 m8 B0 R- r) n
function login(). F, q4 s$ L: w" I$ j4 w* n
* W* Y2 E: B/ r {
5 }2 e% M' S3 e/ M+ r if ($this->tank_auth->is_logged_in()) { // logged in0 Q9 ^2 J0 L6 X7 \& O, A3 v5 S1 u. Z
redirect('/');
0 }' U' V1 Q: P6 E% t( Q } else {3 Z& [3 {7 o9 [) @' F( K4 R+ I
//other codes here......
7 p0 U' N. p+ x; ~9 o /*判断是否有redirect信息*/
# X: S8 `$ T/ {3 Y $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
9 V) z+ u2 D E, B" [- ^* x if ($this->form_validation->run()) { // validation ok; m' M! x$ `0 B: G8 y, }6 k
if ($this->tank_auth->login(' L, `9 ~8 Y' B7 n6 {
$this->form_validation->set_value('login'),
+ K) c& f1 m( b, G2 J $this->form_validation->set_value('password'),
( Q: b; n; v5 L( O# a4 p& a& k $this->form_validation->set_value('remember'),
. @- z/ u3 u1 X8 g $data['login_by_username'],
9 Z! k$ S+ B5 ?% G $data['login_by_email'])) { // success0 o- _+ u& [( m( V
redirect($data['redirect']);/ f! k+ z0 y1 b# C$ d4 e
} else {
7 o7 A1 G R/ s& k* \7 ?9 \0 U //error handling. G8 H, _+ L- ?' k
- o2 @" k( {, ]4 f% K. y# c } 7 g! J/ z9 ]/ ]' |8 p
* X$ W" }0 V/ Z" V- ?( Q
} 1 r& w# B& L7 j1 u; M Z2 U+ r
$this->load->view("login_form")- c& j e7 B+ g* K2 k& p
& k' l$ y* E3 E: ~# v P
}
! O5 B8 w6 _& Z+ I+ w; j& E& l
9 j) n! A/ l; K0 q, C' r# { }
5 b _9 `5 x$ C- C) n% G2 q2 ]+ | M; A
/*
$ j2 i2 s. _0 n( I9 S* G Note: 在login_form中需要注意,提交表单的form地址:
) ]( f: x; P' Q1 n* D A0 d* x9 l. p- R0 D
7 E7 @7 u1 ~+ L& E*/
; f& v/ Z/ e! i* ~9 T/ ]7 R3 V/ Y5 j) u' ]4 J
}
7 J. V8 Z2 `6 Z2 y+ m$ J 在login_form中需要注意,提交表单的form地址:
* U" C0 a& B" N" S6 {
. l/ G6 A6 L! _( S本文由外链代发http://t.qq.com/wailiandf整理 |
|