原创:PHP利用session,实现用户登录后回到点击的页面(本文以TP为例)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原创:PHP利用session,实现用户登录后回到点击的页面(本文以TP为例)相关的知识,希望对你有一定的参考价值。
1、以下内容纯属原创,请谨慎选择:
①目的:用户登录超时,session过期,点击后跳转到登录页,登录成功再跳转到鼠标点击的页面。
②流程:用户登录---session过期---点击跳转到登录页---再次登录成功---跳转回点击的页面
③思路:利用TP自带session默认开启,只要我们的url有变化,那么久将变化的url存入【同名】的session变量中;
用户登录过期,session失效,点击任意url,将该url重新存入session变量中,再次登录成功,redirect到该url即可
④代码:
html页面:
<script src="{$TMPL}/js/ajax_user_login.js"></script> <form id="user_login_form" name="user_login_form" action=‘{url r="user#do_login"}‘ > <span class="lh40 w100 mr20"><i class="color-red">* </i>账号</span> <input name="email" id="email" placeholder="手机号/会员名/邮箱" type="text" class="textbox"/> <span class="lh40 w100 mr20"><i class="color-red">* </i>密码</span> <input name="user_pwd" id="user_pwd" placeholder="请输入密码" type="password" class="textbox"/> <input type="button" value="登录" name="submit_form"id="btn_do_login" /> <input type="hidden" value="1" name="ajax" /> </form>
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); } }
以上是关于原创:PHP利用session,实现用户登录后回到点击的页面(本文以TP为例)的主要内容,如果未能解决你的问题,请参考以下文章
asp.net怎么利用session对象使用户在登录页面实现登录之后,然后首页显示用户名