找回密码
 注册
【阿里云】2核2G云新老同享 99元/年,续费同价华为云精选云产品特惠做网站就用糖果主机Jtti,新加坡服务器,美国服务器,香港服务器
查看: 3|回复: 0

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

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

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

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

×
        Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:* m* a2 J9 E$ N! K/ u; R- k! @
  Codeigniter处理用户登录验证后URL跳转,涉及到My_Controller.php以及登录验证模块User.php,代码如下:
% i2 t4 O: @: m   My_Controller.php
) N5 v  J7 |6 M2 s; Y   class MY_Controller extends CI_Controller$ t/ P$ ^3 B/ L# ^- r* r: n
8 d- x1 e, `0 x, P
{
1 q% V: l9 d- g& ]( s  public function __construct()
0 ~8 ^) }1 o% f6 G6 `1 d) F& O5 l2 D8 Z+ K
    {
% N* M- r; a- T/ a  parent::__construct();+ p& D( @6 K( o1 Q  M) J
  /*判断是否登录,判断当前URL是否是auth/login*/
5 q* L  v, D1 a( B5 l  X  if ( ! $this->tank_auth->is_logged_in()7 J6 P# @; ~1 U
  && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))
1 E* C8 x+ j& u* ~9 T0 t! ^
3 v0 J2 W; @* i2 Z2 X- h        {
! P  ^# t, D# f. W  $redirect = $this->uri->uri_string();$ o: ^) e0 `1 M* A1 v  U! O4 f1 h! ^7 q
  if ( $_SERVER['QUERY_STRING'])% ^% W2 y. B% {2 ?

- l* f  ?! V" W+ |& V8 v  c            { & T; E4 V) @( c& o4 o/ ~/ m
  $redirect .= '?' . $_SERVER['QUERY_STRING'];
: u+ R) V5 T" Q, `# t
$ T" T: h9 p. H2 [3 d            } ; {3 u, C. I# n6 j. K% \" r
  /*跳转到用户登陆页面,指定Login后跳转的URL*/* h6 D* x' C/ a' H9 b5 c# I
  redirect('auth/login?redirect='.$redirect);0 b1 Q( z: J( s, p) n' q) y+ P
# L, j2 ?9 ]1 N! R0 n, ^
        }   
: L2 `7 p/ z9 q# z, K" a
6 C" O" K. s0 t# ^- e2 t6 r! r    }
' \0 o# x0 f& q' D' k2 @9 D/ \' ^0 @
} . n( o( Q1 Q5 U# S# X; I2 b
  User.php + o3 h% H# c& x/ V' q+ O
  class User extends MY_Controller
- X: W# r; F$ s  G/ j/ T4 X! m7 g4 D( u  b* r
{
9 n. F# m4 Y' v9 b# T+ k0 J  function login()
# n  p' c% N. ^$ I/ R$ B4 t% y) F: ~- N7 u
    {
4 P* J6 T3 H0 `5 k   if ($this->tank_auth->is_logged_in()) {                                    // logged in
( W0 F9 I1 e; a  redirect('/');6 C* \" y8 b. V7 b4 Q0 y8 M
  } else {
1 e; j' R5 r0 J2 Q  //other codes here......" U  M  I+ |9 X8 `
  /*判断是否有redirect信息*/+ S5 r5 s9 ^7 K. |- v
  $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
( P9 T$ ^  v# d* v: B% j4 i   if ($this->form_validation->run()) {                                // validation ok' w- M! ?# O' ~$ N0 p
  if ($this->tank_auth->login(
+ _4 w8 B- q+ f5 H  P  $this->form_validation->set_value('login'),, V% v8 T; E* [! H
  $this->form_validation->set_value('password'),
4 ^- u8 Z* S1 |8 z  $this->form_validation->set_value('remember'),* f# C; n/ M' \- q8 D. X8 O
  $data['login_by_username'],
' M1 v: R0 @6 R+ k" w8 u  $data['login_by_email'])) {                                // success
# B7 n! [# U( H- y# v1 B8 O  redirect($data['redirect']);
9 H, f/ ^2 N) r  {' Q   } else {
9 r6 I$ I$ l3 n0 Z$ Q6 q: B, b  //error handling
/ p$ J. M# V) y' R+ l3 h
( Y; B. o  Y  I! a                }
+ l6 ^5 `1 W5 i) h: x: E" q1 T$ u+ t' C! t. l
            }
6 M* I! P* F# `" R- q& G  $this->load->view("login_form")7 Q1 T9 A8 X& z
3 Y# f9 I$ n+ i: s" u7 y: O4 F5 J$ Z
        }
; J1 @" r0 y0 k/ Z& H4 c' G/ i- U+ f2 v1 A5 }# M6 p& O
    }
7 o5 g6 A% C- R
8 a- R( N0 A# N/* 9 p9 L/ q* }" @* Z1 R
  Note: 在login_form中需要注意,提交表单的form地址:. p( W3 g7 m( O0 Z; U' o  _
  
" s. z9 M- N5 \$ o/ j. P7 q' Q! e4 t
*/ . `7 @) E& q2 j4 y1 I6 {+ P( d

7 ^! y2 a9 P1 d' f# p0 y7 m8 r}
7 t8 e: \, H) v  ?   在login_form中需要注意,提交表单的form地址:' ]2 ~" L; j  n8 R; U! [
    \7 \' r; M2 o. B' q
本文由外链代发http://t.qq.com/wailiandf整理
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024 年 11 月 16 日 22:31 , Processed in 0.022059 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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