php跳转

关于PHP中微信公众平台网页授权两次重定向跳转的问题

匿名 (未验证) 提交于 2019-12-02 22:11:45
吐槽一下,新版的这个编辑器怎么这么难用!!! 微信公众平台网页授权时,请求授权链接 https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=xxx&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect 之前会出现要求两次授权,以为是网速慢,服务器卡了,没在意。 今天请求 scope=snsapi_base时,发现数据库中存了相同的openid,因为没有使用openid做主键,所以允许openid重复。 查看log发现同一时间居然有2条不通的code。 说明微信那边重定向了2次过来。 网上搜了一下,说是添加 &connect_redirect=1 这个字段,反正我这里无效。问题依旧。 因为是php,使用的是header跳转。 改为location跳转,居然问题解决了!!!! 只需要把 header("Location: {$authorization_url}"); 改为 echo "<script>location.href='".$authorization_url."'</script>"; 文章来源: 关于PHP中微信公众平台网页授权两次重定向跳转的问题

SSO 单点登录总结(PHP)

匿名 (未验证) 提交于 2019-12-02 22:10:10
本篇文章根据个人理解的知识整理汇总,如有不足之处,请大家多多指正。 单点登录(SSO――Single Sign On)的应用是很普遍的,尤其在大型网站系统中,比如百度,登录百度账号和,再转到百度经验、百度贴吧等是不用重新登录的。本文将从 cookie 和 session 基础详细介绍单点登录的原理,代码实现为 PHP。 Cookie Cookie 是由客户端访问服务器时服务器发送给客户端的特殊信息,且这些信息以文本文件的方式存储在客户端。第一次访问服务器时,服务器会在 HTTP 响应头(Response Header)返回 Cookie 信息。客户端保存 Cookie 信息之后,下次访问服务器时,HTTP请求头(Request Header)会包含 Cookie 信息。 简单的说: 服务器不认识访问它的客户端,为了识别它们,就给每个访问它的客户端一个口令,服务器通过口令识别这些客户端。 注意: 不是访问每个服务器都会返回 Cookie 的,只有服务器中有设置 Cookie ,才会返回给客户端。 在本地服务器下的 test.php 中设置 Cookie <?php // Cookie 是 HTTP 标头的一部分,因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似 setcookie('testCookie', 'this

怎样深入学习php,成为php高手!?

百般思念 提交于 2019-12-02 16:08:00
本文章开头我想问一句话:PHP是做什么的? 因为这是面试中会问到的一个问题,虽然它看起来很简单,回答做网站的,也就是个简单建站的水平。回答做网站后端开发的,对PHP有了一定的认识,回答做后端处理的,有了更深层次的认识。 学习一样技能,你得先清楚这项技能是到底做什么的,说到这里,我想大家都会简单的说是做网站的,因为PHP在WEB领域应用最为广泛,大多数网站都是用PHP做的。准确的说PHP是做网站的后端开发的,其实我这样说还不算正确,PHP只是做后端开发的,但不只是网站而已。就像现在比较火的APP开发也可以用PHP做后端处理。 PHP相对于其他语言,比较简单,相对好上手,比较适合零基础的人学习,但是就像我上面说的那样,PHP只完成了一个网站或者系统的一部分。一个运行的网站或者软件系统可以分为前端页面,后端程序,数据库,linux。而处理后端的PHP仅仅是只占了四分之一,PHP本身的东西其实并不多,真正多的东西都在PHP之外,所以单纯的掌握PHP并不足已做出什么产品,可能连工作都找不到。 关于学习PHP,我想讲讲我的心路历程: 前端: 但凡是一个网站都必须得让人能看得见,使用得起来。任何一个网站可以没有数据库,可以没有后端程序,但是必须得有前端页面,而这也是最早期的网站形态—一 一个只能展示文字和图片等信息的静态页面。掌握静态网页的制作技术是学习开发网站的先决条件。这里面的学习包括

PHP-多域名单点登陆方案

蹲街弑〆低调 提交于 2019-12-02 15:47:10
1.只是二级域名不同(比如a.xx.com, b.xx.com)   利用cookie, 设置domain为".xx.com"即可 2.多个本域名都不相同(比如www.a.com, www.b.com)   1).可以在www.a.com的登录界面利用隐藏iframe + form表单 + js向www.b.com发出请求, b响应设置cookie   2).可以www.a.com的登录界面进行跳转, 跳转到www.b.com的登录界面, 每次都进行cookie设置(头部: set-cookie; location;) 3.P3P协议跨域(跨域设置cookie)   在开发中,我们碰到的跨域主要还是纠结在IE,页面中的IFRAME或者FRAME或者JS跨域的时候,IE有安全策略限制页面不带cookie,但是如果我们加上P3P,就没有这策略的限制。这也是P3P来突破跨域的可行前提。   以下为摘录的例子:     http://www.a.com/a_setcookie.php 文件内容 1 <?php 2 setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");     http://www.a.com/a_getcookie.php 文件内容 <?php var_dump($_COOKIE);     http:/

PHP实现二级目录跳转到二级域名带参数

你。 提交于 2019-12-02 04:16:06
有朋友建站用的是虚拟空间,所以只能使用二级目录【域名/blog】建立博客,估计很多人也是这么做的,一位朋友由于最近换了主机,就想着把博客的二级目录切换到二级域名【blog.youdomain】,由于虚拟主机不能修改Nginx的配置文件,所以 安教通 小编想到了一个不错的方法,用PHP获取地址,然后判断,并转到二级域名,最重要的是带RUI!比如你访问【youdomain/blog/1.html】可以自动重定向到【blog.youdomain/1.html】,就是这么神奇! <?php /** * 通过PHP实现二级目录跳转到二级域名_带参数(URI)跳转 * 文章地址:i.nongyejing.com/2277.html */ $the_host = $_SERVER['HTTP_HOST']; //取得当前访问域名 $url = $_SERVER['PHP_SELF']; //获取域名后的字串,如:/bbs/index.php $filename = substr($url, strrpos($url, '/') + 1); //提取当前文件名 $querystring = $_SERVER["QUERY_STRING"]; //获取问号后面的参数 if ($the_host !== 'blog.youdomain') { //验证当前访问域名(就是你的新域名):若非引号内的域名

Hbuilder环境下配置php

自闭症网瘾萝莉.ら 提交于 2019-12-01 07:52:12
XAMPP的安装 https://blog.csdn.net/qing666888/article/details/81914389 安装并配置好Xampp后,在Hbuilder中下载php插件,工具→插件安装 创建一个项目,以移动app为例,项目路径指定到xmapp的htdocs目录下 配置php服务器 打开边看边改模式,设置外部服务器 点击外部服务器,新建 服务器名称与刚刚创建的名称一致 指定打开php类文件的服务器为我们刚刚新建的服务器 测试是否配置成功 页面跳转显示空白页面 在html跳转到php页面时,使用的是内部服务器的端口,当内外服务器端口不一致时,就会显示空白页面。遇到空白页面问题,修改内部服务器的端口与外部服务器一致。 来源: https://www.cnblogs.com/fangwr/p/11670715.html

$_SERVER['PHP_SELF']安全性浅析

﹥>﹥吖頭↗ 提交于 2019-11-30 18:47:45
我们都知道,在PHP开发中,$_SERVER[’PHP_SELF’],一般用来引用当前网页地址,即表示PHP文件相对于网站根目录地址,可以通过几个例子来看$_SERVER[’PHP_SELF’]的结果: http://www.example.com/php/test.php --> /php/test.php http://www.example.com/php/test.php?parm=1 --> /php/test.php  通过一个例子来探讨他的安全性,一个登陆页面,地址http://马赛克.com/login.php: 当我们访问http://马赛克.com/login.php/a后,页面如下: 通常情况下,系统会给我们抛出404或者其他的错误,所以在这,我们可以猜测,用户提交数据到后台进行处理时可能采用如下方式: <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">  这样在功能上其实没有什么问题,但是在安全的角度,$_SERVER[’PHP_SELF’]参数有一部分是我们可以控制的,尝试XSS攻击: 可以再通过RIPS的一个代码审计题目来看看: 仔(xia)细(bi)分析,startRedirect函数GET一个params的参数,在9-19行中,通过explode函数将$_SERVER[

php的sso单点登录实现方法

左心房为你撑大大i 提交于 2019-11-30 08:30:11
本文实例讲述了php的sso单点登录实现方法。分享给大家供大家参考。具体分析如下: 这里详细讲到了几点: 1、点击登录跳转到SSO登录页面并带上当前应用的callback地址 2、登录成功后生成COOKIE并将COOKIE传给callback地址 3、callback地址接收SSO的COOKIE并设置在当前域下再跳回到应用1即完成登录 4、再在应用程序需要登录的地方嵌入一个iframe用来实时检测登录状态,代码如下: index.php 应用程序页面: 复制代码 代码如下: <?php header('Content-Type:text/html; charset=utf-8'); $sso_address = 'http://XXXX.com/sso/login.php'; //你SSO所在的域名 $callback_address = 'http://'.$_SERVER['HTTP_HOST'] .str_replace('index.php','',$_SERVER['SCRIPT_NAME']) .'callback.php'; //callback地址用于回调设置cookie if(isset($_COOKIE['sign'])){ exit("欢迎您{$_COOKIE['sign']} <a href="login.php?logout">退出</a>");

php的sso单点登录实现方法

放肆的年华 提交于 2019-11-30 08:29:55
本文实例讲述了php的sso单点登录实现方法。分享给大家供大家参考。具体分析如下: 这里详细讲到了几点: 1、点击登录跳转到SSO登录页面并带上当前应用的callback地址 2、登录成功后生成COOKIE并将COOKIE传给callback地址 3、callback地址接收SSO的COOKIE并设置在当前域下再跳回到应用1即完成登录 4、再在应用程序需要登录的地方嵌入一个iframe用来实时检测登录状态,代码如下: index.php 应用程序页面: 复制代码 代码如下: <?php header('Content-Type:text/html; charset=utf-8'); $sso_address = 'http://XXXX.com/sso/login.php'; //你SSO所在的域名 $callback_address = 'http://'.$_SERVER['HTTP_HOST'] .str_replace('index.php','',$_SERVER['SCRIPT_NAME']) .'callback.php'; //callback地址用于回调设置cookie if(isset($_COOKIE['sign'])){ exit("欢迎您{$_COOKIE['sign']} <a href="login.php?logout">退出</a>");

PHP header 的几种用法

北城余情 提交于 2019-11-30 03:59:15
PHP header 的几种用法 PHP header 的几种用法,你知道几种? 1. 跳转页面 header('Location:'.$url); //Location和":"之间无空格。 2. 声明content-type header('content-type:text/html;charset=utf-8'); 3. 返回response状态码 header('HTTP/1.1 404 Not Found'); 4. 在某个时间后执行跳转 header('Refresh: 10; url=http://www.baidu.com/'); //10s后跳转。 5. 控制浏览器缓存 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");header("Cache-Control: no-cache, must-revalidate");header("Pragma: no-cache"); 6. 执行http验证 header('HTTP/1.1 401 Unauthorized');header('WWW-Authenticate: Basic realm="Top Secret"'); 7. 执行下载操作