找回密码
 注册
广告投放 虚位以待【阿里云】2核2G云新老同享 99元/年,续费同价做网站就用糖果主机-sugarhosts.comJtti.com-新加坡服务器,美国服务器,香港服务器
查看: 6|回复: 0

codeigniter处理用户登录验证后url跳转

[复制链接]
发表于 2013 年 4 月 28 日 19:07:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
        Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:+ f$ L( R5 S7 ~7 R: @2 U. d6 c
  Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:6 z- Y9 R5 S$ e. t* x
  My_Controller.php
, v+ A. p8 k- l  v! i3 ]. U% I& A   class MY_Controller extends CI_Controller  R/ {  n/ n: c) c0 [1 w7 c/ K% D

: I: w: r- n( N+ d# B% l{
2 ~, Z' ~! |1 ]0 a( J0 F  public function __construct()5 O3 v& a8 F9 l

3 ~3 G) U5 Z2 U7 B  e1 M' s) l- ^    { ' \. C2 x7 S1 e: O
  parent::__construct();
" B- B4 q  z! K/ _' R  /*判断是否登录,判断当前URL是否是auth/login*/
" {' Q8 A) k9 H* W  if ( ! $this->tank_auth->is_logged_in()& U& V% z4 ?0 C5 W0 @% _2 L4 f* @
  && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))+ ?, ?+ e, ^: s' S  u! Z

) S/ t4 U+ |" W3 G; @* L# `        { % m* A0 Z/ w9 u& @
  $redirect = $this->uri->uri_string();0 F9 E+ q* J' H9 T6 O3 T$ f
  if ( $_SERVER['QUERY_STRING'])
& f+ i3 d9 p2 d/ h1 P! J9 U' W- O& |: G: C6 t
            { / O8 b' t" W- l$ Z6 {# y( a  g
  $redirect .= '?' . $_SERVER['QUERY_STRING'];% k# m) m$ A8 q9 C( U

" b5 I+ y3 p2 N3 R            }
) M) h* y) A5 _8 e' g% W7 @& W  /*跳转到用户登陆页面,指定Login后跳转的URL*/. D5 l$ I* P) {3 M1 o9 ^6 z8 A# f9 n
  redirect('auth/login?redirect='.$redirect);
8 \3 n2 ~9 ?0 u% ?* _% o
' x# X; y5 J$ v. I: x! f) B        }   
. f9 J" S% P9 ?
( U+ g2 f; T4 f  a    }
" U0 z; u# d; H% _0 `
# U' h, ^& {7 `0 h0 ?5 [, E" v: m9 G} 3 w- ~' B5 F: J" H2 J8 @
  User.php 9 ]4 g2 V2 w7 O! v
  class User extends MY_Controller
, s! X7 {  B  `( |% L4 U2 ^$ ^; O# C# U; }2 |& e' A
{
" x; L! g, _; o( y  i0 X) w  function login()$ R: q5 A% e! i- }

: M, B2 Z  E; N' o* P" Y    {
5 M6 O9 Y' S& u   if ($this->tank_auth->is_logged_in()) {                                    // logged in, C; C- G; A/ F! [, x
  redirect('/');
  [- I6 m0 S4 e   } else {1 r: f7 i2 d, }6 ?3 E# H# p8 ]5 Y+ @
  //other codes here......) A4 G; G& c* p1 F
  /*判断是否有redirect信息*/  S' R- Y! N8 V  y5 y2 [
  $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
" T7 ~" e  S6 P: Y6 \   if ($this->form_validation->run()) {                                // validation ok
. O+ |% g9 {3 |  if ($this->tank_auth->login(9 a- Z; p" h1 U4 L  n  e! r8 _& i
  $this->form_validation->set_value('login'),
; D) T( z. f' b% ?6 j. D# ~; r9 ], S! s  $this->form_validation->set_value('password'),' k2 [9 m5 `! h+ {
  $this->form_validation->set_value('remember'),, u6 E! U& O% D% i8 ?# H
  $data['login_by_username'],
' ^, I' h# a$ t  $data['login_by_email'])) {                                // success
0 n2 [. z  x6 O  redirect($data['redirect']);4 k" n+ `( _* v
  } else {
3 i7 J; p5 L) d+ p/ N( u  //error handling! U% h, g, F% Q- w: k( R
  ^1 H4 }5 D5 B' E& B8 V4 }% D3 ?
                } 0 ?/ K0 C6 X& x' f" K. Y+ w' A

( }2 a( K' `" M5 {" e            }
; X& V4 x0 _( m- I: o* G( ~9 {8 J  $this->load->view("login_form")
! T% W) q. ~) S8 o, f! j/ M7 W5 c, ]6 |6 t2 T% t
        }
$ A2 r8 ^6 i: J: o- N$ f; N! n/ ~! j; s* `5 F
    } , j; O" a  D7 V& o6 c! N# U* l% o
- _: S& R4 q' ]& ?" V5 R+ B, T
/* , \8 i) H7 y5 p# u4 T6 D7 a0 P
  Note: 在login_form中需要注意,提交表单的form地址:
+ T2 d. I/ N* j! n  ' f2 o! _5 w4 m- }4 s5 q. j
$ c2 G! ?; f. y: U( L7 W/ t
*/ 7 m1 O' l0 ^' L, v
6 Q8 E2 h( z6 ~5 A: e
}
" F7 x/ X2 {, v6 ?$ ?! n   在login_form中需要注意,提交表单的form地址:
1 n$ t8 D! [; t   5 j9 `) Y; B- c" I/ _% X* `
本文由外链代发http://t.qq.com/wailiandf整理
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2025 年 3 月 13 日 00:54 , Processed in 0.017340 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表