PHP从Excel打开链接会运行页面三次
我有一个奇怪的问题,我发现很难用一个标题来概括 第一名:PHP从Excel打开链接会运行页面三次,php,Php,我有一个奇怪的问题,我发现很难用一个标题来概括 第一名: 我有一个网页,人们需要登录 我有一个Excel文档,带有网页链接 问题: 当用户登录并单击Excel文档中的链接时。网页告诉他们他们没有登录 我目前的发现: 我在Mac上使用Office,我没有任何问题 在Windows上使用Office的用户确实存在问题 我认为问题是由于会话,这可能是用户在应该登录时没有登录的原因 我做了一些测试 每个URL都经过index.php index.php <?php session_star
- 我有一个网页,人们需要登录李>
- 我有一个Excel文档,带有网页链接
- 我在Mac上使用Office,我没有任何问题
- 在Windows上使用Office的用户确实存在问题
- 我认为问题是由于
,这可能是用户在应该登录时没有登录的原因会话
<?php
session_start();
file_put_contents('log.txt', microtime().': SERVER '.print_r($_SERVER, true).PHP_EOL, FILE_APPEND);
exit;
您可以看到浏览器(Chrome)和cookie,其中包含用于登录的rememberme
cookie
现在,当我在Windows上单击Excel中的链接执行相同操作时,我会在日志文件中打印三次$\u SERVER
变量
第一:
[HTTP_USER_AGENT] => Microsoft Office Excel 2014
[HTTP_COOKIE] => PHPSESSID=0ivlfjf49j4b82858tstc2lmm3; PHPSESSID=tv6gs33j721d0tmm3rrjdoho45
请注意用户代理和无记忆cookie
第二:
[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; ms-office)
[HTTP_COOKIE] => PHPSESSID=0ivlfjf49j4b82858tstc2lmm3
注意,仍然没有chrome浏览器和Memberme cookie
第三:
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
[HTTP_COOKIE] => PHPSESSID=3s0hvtssghk7uomvkpb5k70tc2; rememberme=1%3Aa9bd74ad58a0d7075c27108be1adbd26ba6d18f6e8b39073152d6780131ffe70%3A643852f8636c76c0bfc4017ec7fe3eab98dd57f5bcfdf86f0e37b5ec28a0c0ef
最后,用户代理是Chrome,并设置了membermecookie
所以,说来话长。但是在Windows中点击Excel中的链接,它会做一些奇怪的事情。有人知道发生了什么吗?好的,我发现了问题。下面是superuser.com的答案 您正在使用的URL需要从cookie到 显示搜索结果而不是搜索页面。粘贴URL 进入不同的浏览器(或删除cookie),您将获得 同样的结果 在Excel中单击URL似乎会在默认浏览器中打开它。但是 那不是真的。在浏览器中打开它之前,请先使用Excel 运行Microsoft Office协议发现。这使用Windows/Internet Explorer组件来确定URL是否有效。(事实并非如此 将自己标识为Internet Explorer,但标识为“用户代理:Microsoft” 办公室存在发现“),如果结果(不知何故)是好的 然后,它将在默认浏览器中打开该检查的结果 缺少饼干(更准确地说:缺少会话),GoDaddy给出 Internet Explorer组件可能会重定向。结果呢 在默认浏览器中打开。这就是您看到的URL 您的默认浏览器很可能不是Internet Explorer?然后 将URL直接粘贴到IE中并单击,以获取cookies, 这样也可以使链接在Excel中工作。(仅用于测试;它是 这不是一个永久的解决办法。) 你会有更多的运气使用一个网址,不依赖于一些隐藏的 来自cookie的信息,比如 资料来源: 所以要解决这个问题:
当Excel检查链接时,它被重定向到“/login”,因为它没有登录。最后,这个URL就是Excel在真实浏览器中打开的URL
因此,我更改了登录脚本,用户将不会被重定向到“/login”,而是保持在相同的URL上,如果未登录,它将显示登录表单。Excel现在打开原始URL,如果用户登录,它将看到该页面。如果未登录,将显示登录表单。好的,我发现这个问题,似乎与我遇到的问题相同!
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
[HTTP_COOKIE] => PHPSESSID=3s0hvtssghk7uomvkpb5k70tc2; rememberme=1%3Aa9bd74ad58a0d7075c27108be1adbd26ba6d18f6e8b39073152d6780131ffe70%3A643852f8636c76c0bfc4017ec7fe3eab98dd57f5bcfdf86f0e37b5ec28a0c0ef