2016-07-20 7 views
0

タイトルに要約するのが難しい、奇妙な問題が発生しています。ExcelからのPHPオープンリンクが3回実行される

まず:

  • 私は人々が、ログインする必要があるWebページを、持っている
  • 私は、ウェブページへのリンクと、Excel文書を持っています。

問題: 人がログインして、彼らはExcelドキュメント内のリンクをクリックされた場合。 Webページは、彼らがログインしていないことを彼らに伝えます

私がこれまでに見つかったもの:。私は、MacでOfficeを使用していると私は何

  • すべての問題を持っていない。
  • WindowsでOfficeを使用している人doに問題があります。
  • 私はこの問題がSESSIONSに起因すると考えています。その理由は、ユーザーがログインしていない理由です。

私はいくつかのテストを行いました。私はMac上のOfficeからのリンクをクリックしないとき

すべてのURLはindex.phpを今すぐ

のindex.php

<?php 
session_start(); 
file_put_contents('log.txt', microtime().': SERVER '.print_r($_SERVER, true).PHP_EOL, FILE_APPEND); 
exit; 

を通過(NO問題!!!)、私はのダンプを取得します変数$_SERVER。二つの重要な変数:あなたは、ブラウザ(クローム)やログインのremembermeクッキーが含まれているクッキーを、見ることができます

[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 

WindowsでExcelのリンクをクリックして同じことをすると、$_SERVER変数がログファイルに3回印刷されます。

まず:

[HTTP_USER_AGENT] => Microsoft Office Excel 2014 
[HTTP_COOKIE] => PHPSESSID=0ivlfjf49j4b82858tstc2lmm3; PHPSESSID=tv6gs33j721d0tmm3rrjdoho45 

お知らせユーザエージェントなしリメンバー・ミークッキー。

第二:

[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ブラウザとリメンバー・ミークッキー。第三に

[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 

最後にユーザーエージェントはクロームで、リメンバー・ミークッキーが設定されています。

これは長い話です。しかし、WindowsからExcelのリンクをクリックすると、奇妙なことが起きる。誰かアイデアは何が起こっている?

+0

[OK]をクリックしてこの問題を発見しました。同じ問題が発生しているようです。 http://superuser.com/questions/444984/excel-hyperlink-not-redirecting-properly-bug – Timo002

答えて

0

おかげで、問題が見つかりました。あなたがニーズにクッキーからいくつかのより多くの情報を使用しているURL superuser.com

から への答えの下には、検索結果ではなく、検索ページを表示します。 URL を別のブラウザに貼り付ける(またはCookieを削除する)と、同じ結果が になります。

ExcelでURLをクリックすると、デフォルトのブラウザで開きそうです。しかし、 本当にそうではありません。ブラウザで開く前に、まずExcel がMicrosoft Office Protocol Discoveryを実行します。これは、Windows/Internet Explorerコンポーネントを使用して、URLが機能するかどうかを判断します。 ( はInternet Explorerではなく「User Agent:Microsoft Office Existence Discovery」となります)。結果が(何らかの形で)大丈夫ならば、 デフォルトのブラウザでその結果を開きます。

GoDaddyはCookieが不足している(より正確にはセッションがない)、 にInternet Explorerコンポーネントがリダイレクトすることを示しています。その結果、 が既定のブラウザで開かれます。それはあなたが見ているURLです。

ほとんどの場合、デフォルトブラウザはInternet Explorerではありませんか?その後、 URLに直接IEにURLを貼り付けてクリックすると、Cookieを取得するために、 がExcelからのリンクを作成することがあります。 (ただ、テストのために、それは ない恒久的なソリューションです。)

あなたは ​​3210

源のように、クッキーからいくつかの隠し 情報に依存しないURLを使用して、より運を持っています。https://superuser.com/a/445431 Excelがリンクをチェックすると、ログインしていないため '/ login'にリダイレクトされます。最後に、実際のブラウザでExcelが開くURLです。

ログインスクリプトを変更したため、ユーザーは「/ login」にリダイレクトされずに同じURLにとどまり、ログインしていなければログインフォームが表示されます。ユーザーがログインすると、そのページが表示されます。ログインしていない場合は、ログインフォームが表示されます。

関連する問題