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 相关文章推荐
BBS(php &amp; mysql)完整版(八)
Oct 09 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
thinkphp中空模板与空模块的用法实例
Nov 26 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
PHP中error_reporting()用法详解
Aug 31 PHP
php简单获取复选框值的方法
May 11 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 13 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
php 调用远程url的六种方法小结
2009/11/02 PHP
php常用Stream函数集介绍
2013/06/24 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
js轮播图代码分享
2016/07/14 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
Python栈类实例分析
2015/06/15 Python
Python的装饰器使用详解
2017/06/26 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
详解python with 上下文管理器
2020/09/02 Python
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
大学生志愿者感言
2014/01/15 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
优秀学生评语大全
2014/04/25 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
实习生个人总结范文
2015/02/28 职场文书
步步惊心观后感
2015/06/12 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
500字作文之周记
2019/12/13 职场文书
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android