重定向到登录页面后跳转原页面_暄妍丶的博客-程序员秘密

技术标签: html  整理  

重定向到登录页面后跳转原页面

  • 起因:

网站涉及权限问题,没有登录或者登录过期需要重新登录时服务器会302重定向到登录页面,但是有登录以后回到原页面的需求

  • 实现思路:

服务器在重定向时带上参数,参数的值就是当前页面的路径,因为可能当前路径有参数,所以要对路径进行URL编码

/*PHP代码*/
if(登录失效){
    
 	//将路径+?+参数进行URL编码以后作为登录页的参数url的值
  	header("Location: /login.php?url=".urlencode($_SERVER['PHP_SELF']."?".$_SERVER["QUERY_STRING"]) );
 }

登录页提取参数,然后URL解码,登录验证成功以后对应跳转

/*JS代码*/

/**
 * 获取url中的参数值
 * 
 * @param queryName 要获取的参数名
 * @returns {string|null} 返回对应的参数值 没有找到返回null
 * @constructor
 */
function GetQueryValue(queryName) {
      //这里函数名的首字母G不能小写,小写就找不到方法,目前不知道为什么,知道的欢迎指教
    var query = decodeURI(window.location.search.substring(1));
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
    
        var pair = vars[i].split("=");
        if (pair[0] == queryName) {
    
            return pair[1];
        }
    }
    return null;
}

/*中间代码省略*/


if(登录验证成功){
    
	let url= GetQueryValue("url"); //链接里的tourl参数
	if (url != null) {
    
		//参数有值,跳转到原网页
	   location.replace(decodeURIComponent(url));    
	} else {
    
		//参数没值,跳转首页
	   location.replace("admin/index.php");
	}
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43774832/article/details/111306961

智能推荐

c++11特性之std::thread--进阶二_一苇渡江694的博客-程序员秘密

继续C++11的std::thread之旅!下面讨论如何给线程传递参数 这个例子是传递一个string#include <iostream>#include <thread>#include <string>void thread_function(std::string s){ std::cout << "thread function "; std::cout << "m

php 开启phalocn 扩展_php安装phalcon扩展的步骤_困困斐的博客-程序员秘密

php安装phalcon扩展的步骤发布时间:2020-06-19 16:42:53来源:亿速云阅读:103作者:元一Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。 开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。 Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象。Phalcon是一套实...

java 字节码操作_java字节码框架ASM操作字节码的方法浅析_weixin_39914863的博客-程序员秘密

之前我们已经对ASM进行的详细的介绍,需要的朋友们可以点击这里:java字节码框架ASM的深入学习JVM的类型签名对照表Type SignatureJava TypeZbooleanBbyteCcharSshortIintJlongFfloatDdoubleLfully-qualified-class ;fully-qualified-class[ typetype[]( arg-types ) ...

cmake中的变量和命令的大小写_weixin_33873846的博客-程序员秘密

1 cmake中要特别注意命令和变量的大小写2 cmake的内置命令是不区分大小写的3 cmake内置变量是区分大小写的,或者干脆就说,cmake的所有变量都是区分大小写的这就是变量和命令的不同。转载于:https://www.cnblogs.com/hustdc/p/6760400.html...

Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found._hellokandy的博客-程序员秘密

【背景】在Android studio中引用第三方库(banner,下载地址:https://github.com/youth5201314/banner)的时候,报这个错。Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found.【分析】这是因为该项目的原作者会把项目发布到maven中央仓库中,所以在gr...

django-import-export插件使用教程_菲宇的博客-程序员秘密

顾名思义,这是一个用于处理导入和导出数据的库。django-import-export库支持多种格式,包括xls、csv、json、yaml以及tablib支持的所有其他格式。它还有一个Django管理集成,使用起来非常方便。安装插件使用PIP安装pipinstalldjango-import-export更新settings.py:INSTALLED_AP...

随便推点

springboot中Excel文件导入导出_springboot导入导出excel_向前走别回头的博客-程序员秘密

Java学习大纲(持续更新):https://blog.csdn.net/weixin_39778570/article/details/94667501更多IT学习资源:https://blog.csdn.net/weixin_39778570/article/details/100052454Excel文件导入从前端传递excel文件到后端,通过ajax这里使用的是lay-ui的控件...

C语言简介&Linux系统命令&vim使用_linuxc如何打开vim-程序员秘密

C语言诞生于1970~1973年,在肯·汤普逊和丹尼斯·里奇的编写下完成,归属于美国贝尔实验室。C语言是专门用于编写操作系统而发明的编程语言,所以天生适合对硬件编程,也以运行速度快而著称,也非常适合实现数据结构和算法.本文Linux系统命令与vim文本编辑器做了有关介绍。......

EXCEl 时间戳转换为日期格式_excel时间戳转换_单椒煜泽的博客-程序员秘密

公式为:=TEXT((A2/1000+8*3600)/86400+70*365+19,"yyyy-mm-dd hh:mm:ss")具体操作如下:(A2/1000+8*3600)/86400+70*365+19yyyy-mm-dd hh:mm:ss

python获取进程pid_如何在Python中获取运行进程的pid?_cuma2369的博客-程序员秘密

python获取进程pidHow to get the running process’ pid in Python? 如何在Python中获取正在运行的进程的pid? In Python, you can get the pid of the current process by 在Python中 ,您可以通过获取当前进程的pid import osos.getpid()From the...

常用颜色RGB、灰度值_weixin_30778805的博客-程序员秘密

128/0/0 深红255/0/0红255/0/255粉红255/153/204玫瑰红153/51/0褐色255/102/0桔黄255/153/0浅桔黄...

推荐文章

热门文章

相关标签