php中if ($_session['u_id']){,原创:PHP利用session,实现用户登录后回到点击的页面(本文以TP为例)...

本文详细介绍了如何使用PHP的ThinkPHP框架实现用户登录超时后,点击任何链接都会跳转到登录页面,登录成功后返回之前点击的页面。通过设置session保存用户点击的URL,在session过期后重新登录并根据session中的URL进行跳转,确保用户体验的连续性。
摘要由CSDN通过智能技术生成

1、以下内容纯属原创,请谨慎选择:

①目的:用户登录超时,session过期,点击后跳转到登录页,登录成功再跳转到鼠标点击的页面。

②流程:用户登录---session过期---点击跳转到登录页---再次登录成功---跳转回点击的页面

③思路:利用TP自带session默认开启,只要我们的url有变化,那么久将变化的url存入【同名】的session变量中;

用户登录过期,session失效,点击任意url,将该url重新存入session变量中,再次登录成功,redirect到该url即可

④代码:

html页面:

* 账号

* 密码

JS:

$(document).ready(function(){

do_login_user();

});

function do_login_user()

{

var ajaxurl = $("form[name=‘user_login_form‘]").attr("action");

var query = $("form[name=‘user_login_form‘]").serialize() ;

$.ajax({

url: ajaxurl,

dataType: "json",

data:query,

type: "POST",

success: function(ajaxobj){

if(ajaxobj.status==1)

{

location.href = ajaxobj.jump; //php传过来的session地址url

}

});

}

PHP代码(TP框架):

核心的BaseModule.class.php:

class BaseModule{

public function __construct()

{

/* 系统判断是否默认开启session -xzz0419 */

if(!isset($_SESSION)){

session_start();

}

set_gopreview(); //将当前页面url存入session();

/* other code */

}

PHP的common方法:

function get_current_url()

{

$url = $_SERVER[‘REQUEST_URI‘].(strpos($_SERVER[‘REQUEST_URI‘],‘?‘)?‘‘:"?");

$parse = parse_url($url);

if(isset($parse[‘query‘])) {

parse_str($parse[‘query‘],$params);

$url = $parse[‘path‘].‘?‘.http_build_query($params);

}

return $url;

}

function set_gopreview()

{

$url = get_current_url();

session("gopreview",$url);

}

function get_gopreview()

{

$gopreview =session("gopreview");

if(!isset($gopreview)||$gopreview=="")

{

$gopreview = session(‘before_login‘)?session(‘before_login‘):url("index");

}

session("before_login",null);

session("gopreview",null);

return $gopreview;

}

PHP处理登录功能代码:

public function do_login(){

if(!$_POST){

app_redirect(APP_ROOT."/");

}

foreach($_POST as $k=>$v){

$_POST[$k] = strim($v);

}

$ajax = intval($_REQUEST[‘ajax‘]);

$jump_url = get_gopreview();//获取点击的url,已存入session中

if($ajax==1){

$return[‘status‘] = 1;

$return[‘info‘] = "登录成功";

$return[‘data‘] = $result[‘msg‘];

$return[‘jump‘] = $jump_url;

ajax_return($return);

}

}

原文:http://www.cnblogs.com/xuzhengzong/p/6857259.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值