我有一个奇怪的问题,我觉得很难在标题中总结。
首先
问题: 当人们登录时,他们点击Excel文档中的链接。该网页告诉他们他们没有登录。
到目前为止我发现了什么:
SESSIONS
,这可能是用户未应该登录的原因。我做了一些测试。
每个网址都通过index.php
的index.php
<?php
session_start();
file_put_contents('log.txt', microtime().': SERVER '.print_r($_SERVER, true).PHP_EOL, FILE_APPEND);
exit;
现在,当我单击Mac上的Office链接(没有问题!!!)时,我得到了变量$_SERVER
的转储。两个重要变量:
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
[HTTP_COOKIE] => PHPSESSID=77lpqmdmvskv33d2ddsdlfs5q7; rememberme=1%3Ae79e92271e7e05a5ee5679b659b3cb5cbb61e60d96c158f4648960136b175164%3Accdee80c3e42705fcd7e8c234525beda86d27394653dfdfb42bdd3ec98592ca1
您可以看到浏览器(Chrome)和Cookie,其中包含用于登录的rememberme
Cookie。
现在,当我点击Windows上Excel中的链接时,我会在日志文件中打印三次$_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浏览器和rememberme 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,并且设置了rememberme cookie。
所以,这是一个很长的故事。但是从Windows中点击Excel中的链接,它会做一些奇怪的事情。谁知道发生了什么?
答案 0 :(得分:0)
您正在使用的网址需要更多来自Cookie的信息 显示搜索结果而不是搜索页面。粘贴URL 进入不同的浏览器(或删除你的cookie),你就会得到 相同的结果。
单击Excel中的URL似乎在默认浏览器中打开它。但 这不是真的。在浏览器中打开它之前,请先使用Excel 运行Microsoft Office协议发现。这使用Windows / Internet Explorer组件,用于确定URL是否有效。 (它不是 将自己标识为Internet Explorer,但作为&#34;用户代理:Microsoft Office Existence Discovery&#34 ;.)如果结果(某种程度上)没问题 然后它将在您的默认浏览器中打开该检查的结果。
缺乏cookie(更确切地说:缺乏会话),GoDaddy给出了 Internet Explorer组件有些重定向。结果就是这样 在您的默认浏览器中打开。这是您正在查看的网址。
您的默认浏览器很可能不是Internet Explorer?然后 直接将URL粘贴到IE中并单击它以获取cookie, 然后也可以使链接在Excel中运行。 (仅用于测试;它是 不是永久的解决方案。)
使用不依赖某些隐藏的网址,您将获得更多运气 来自cookie的信息,比如 http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com
来源:https://superuser.com/a/445431
所以要解决这个问题:
当Excel检查链接时,它会被重定向到&#39; / login&#39;因为它没有登录。最后,该URL是Excel在真实浏览器中打开的URL。
所以我更改了登录脚本,用户不会被重定向到&#39; / login&#39;,但保留在同一个URL上,如果没有登录,它将显示登录表单.Excel现在打开原始URL如果用户登录,它将看到该页面。如果未登录,将显示登录表单。