PHP登陆后跳转到登陆前页面实现思路及代码


Posted in PHP onJanuary 17, 2014

最近手上一个小项目让我接触到PHP编程,简单的登陆功能已经OK。可是在实际使用的时候发现一个问题:用户A发送一个链接给用户B,B打开时页面提示登陆,可是登陆成功后,却跳转到了首页,而并不是A发送的链接。为了有更好的用户体验,B登陆成功后应该自动跳转到登陆前的链接。查了PHP帮助手册,利用$_SERVER全局变量可以实现这个功能。

$_SERVER是PHP的一个超全局变量,关于$_SERVER变量的详细解释可以参考:http://www.php.net/manual/zh/reserved.variables.server.php

具体实现方法为:在提示用户登录的同时,在session或者cookie中记录下请求页面的URL;登录验证成功后在跳转回该URL。
checklogin.php

session_start(); if (!isset ($_SESSION['login_ok'])) 
{ 
echo "<script language=javascript>alert ('要访问的页面需要先登录。');</script>"; 
$_SESSION['userurl'] = $_SERVER['REQUEST_URI']; 
echo '<script language=javascript>window.location.href="login.php"</script>'; 
}

login.php
session_start(); //此处省略了账号密码验证代码,验证OK再执行下面代码 
if (isset ($_SESSION['userurl'])) 
{ 
//会话中有要跳转的页面 
$url = $_SESSION['userurl']; 
} 
else 
{ 
//没有要跳转的页面,则转到首页 
$url = "home.php"; 
} 
//0.5s后跳转 
echo "<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";
PHP 相关文章推荐
php array的学习笔记
May 10 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
php操作MongoDB类实例
Jun 17 PHP
6个超实用的PHP代码片段
Aug 10 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 #PHP
php使用curl访问https示例分享
Jan 17 #PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 #PHP
php 检查电子邮件函数(自写)
Jan 16 #PHP
php mail to 配置详解
Jan 16 #PHP
php生成txt文件标题及内容的方法
Jan 16 #PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 #PHP
You might like
global.php
2006/12/09 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
VUE重点问题总结
2018/03/19 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
中央空调节能方案
2014/06/15 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
运动会广播稿200字
2014/10/18 职场文书
成本会计岗位职责
2015/02/03 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS