測試指令碼為php,IE版本為ie9,其它核心瀏覽器ff,chrome,safari下都沒有這個問題。
發現這個問題的時候,是做了一個登入頁,使用$_SESSION來判斷,ie就是登不上去,其它瀏覽器沒問題。
後來測試了一下print session_id();ie下每次重新整理頁面的值都不一樣,開啟d:\tmp\session(這是php.ini裡面設定的session儲存位置),每次重新整理增加一個session檔案,當然這在其它瀏覽器下也不存在。
後來嘛,臨時做了個解決方案,就是在php頁面裡設定一個cookie
session_start();setcookie('PHPSESSID',session_id());
算是臨時解決了,但是……蛋還是繼續的疼下去了,伺服器(win2008 x86 iis7 fastcgi php5.2.17nts)上放了一個drupal,經常有人反應登陸不了,不用猜,肯定是用IE登不上,這事煩惱的我啊,我可不想去改drupal... 反正幾個月以來,都在找答案。
現在,答案已經沒那麼重要了,只希望有解決辦法,請各位走過路過的朋友們,給點您的經驗,幫幫我這迷途的羔羊。。
順便提一下,在尋找答案的路上,找到了一個和我一樣問題的人,但是解決方案我沒搞明白,因為可以肯定的是,我的網域名稱沒有底線。。http://forums.iis.net/t/1150171.aspx請看得明白這個文章的朋友,也給指點一下。
附上抓包資料(隱去了網域名稱):
IE下:
GET /index.php HTTP/1.1Accept: text/html, application/xhtml+xml, */*Accept-Language: zh-CNUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)Accept-Encoding: gzip, deflateHost: ***.***.cnConnection: Keep-AliveCookie: has_js=1HTTP/1.1 200 OKCache-Control: public, max-age=600Content-Type: text/html; charset=utf-8Content-Language: zh-hansExpires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 05:54:19 +0000ETag: "1376286859-0"Vary: CookieServer: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Drupal-Cache: MISSX-Generator: Drupal 7 (http://drupal.org)X-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 05:54:37 GMTConnection: keep-aliveContent-Length: 9829POST /?q=front-page&destination=front-page HTTP/1.1Accept: text/html, application/xhtml+xml, */*Referer: http://***.***.cn/index.phpAccept-Language: zh-CNUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateHost: ***.***.cnContent-Length: 129Connection: Keep-AliveCache-Control: no-cacheCookie: has_js=1HTTP/1.1 302 RedirectCache-Control: no-cache, must-revalidate, post-check=0, pre-check=0Content-Type: text/html; charset=UTF-8Expires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 06:02:32 +0000ETag: "1376287352"Location: http://***.***.cn/?q=front-pageServer: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Drupal-Cache: MISSSet-Cookie: SESS6a2ee0acf5e5bd0d9cea678a1bb7540f=S2CFFREDq47DBALxDLxlCVzhqnI98MMm4yHPY_k7dho; expires=Wed, 04-Sep-2013 09:35:57 GMT; path=D:/tmp/cook; domain=.***.***.cn; HttpOnlyX-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 06:02:37 GMTConnection: keep-aliveContent-Length: 155
firefox下:
GET /index.php HTTP/1.1Host: ***.***.cnUser-Agent: Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateCookie: Drupal.toolbar.collapsed=0; has_js=1Connection: keep-aliveIf-Modified-Since: Mon, 12 Aug 2013 05:56:10 +0000If-None-Match: "1376286970"HTTP/1.1 200 OKCache-Control: no-cache, must-revalidate, post-check=0, pre-check=0Content-Type: text/html; charset=utf-8Content-Language: zh-hansExpires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 05:56:51 +0000ETag: "1376287011"Server: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Generator: Drupal 7 (http://drupal.org)X-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 05:56:56 GMTConnection: keep-aliveContent-Length: 18842POST /?q=front-page&destination=front-page HTTP/1.1Host: ***.***.cnUser-Agent: Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateReferer: http://***.***.cn/Cookie: Drupal.toolbar.collapsed=0; has_js=1Connection: keep-aliveContent-Type: application/x-www-form-urlencodedContent-Length: 129HTTP/1.1 302 RedirectCache-Control: no-cache, must-revalidate, post-check=0, pre-check=0Content-Type: text/html; charset=UTF-8Expires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 05:59:42 +0000ETag: "1376287182"Location: http://***.***.cn/?q=front-pageServer: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Drupal-Cache: MISSSet-Cookie: SESS6a2ee0acf5e5bd0d9cea678a1bb7540f=DjNRVBdGXEVPumZnszKG9U8bAP0dHqx5wp8jFhJV81U; expires=Wed, 04-Sep-2013 09:33:07 GMT; path=D:/tmp/cook; domain=.***.***.cn; HttpOnlyX-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 05:59:47 GMTConnection: keep-aliveContent-Length: 155
回複內容:
測試指令碼為php,IE版本為ie9,其它核心瀏覽器ff,chrome,safari下都沒有這個問題。
發現這個問題的時候,是做了一個登入頁,使用$_SESSION來判斷,ie就是登不上去,其它瀏覽器沒問題。
後來測試了一下print session_id();ie下每次重新整理頁面的值都不一樣,開啟d:\tmp\session(這是php.ini裡面設定的session儲存位置),每次重新整理增加一個session檔案,當然這在其它瀏覽器下也不存在。
後來嘛,臨時做了個解決方案,就是在php頁面裡設定一個cookie
session_start();setcookie('PHPSESSID',session_id());
算是臨時解決了,但是……蛋還是繼續的疼下去了,伺服器(win2008 x86 iis7 fastcgi php5.2.17nts)上放了一個drupal,經常有人反應登陸不了,不用猜,肯定是用IE登不上,這事煩惱的我啊,我可不想去改drupal... 反正幾個月以來,都在找答案。
現在,答案已經沒那麼重要了,只希望有解決辦法,請各位走過路過的朋友們,給點您的經驗,幫幫我這迷途的羔羊。。
順便提一下,在尋找答案的路上,找到了一個和我一樣問題的人,但是解決方案我沒搞明白,因為可以肯定的是,我的網域名稱沒有底線。。http://forums.iis.net/t/1150171.aspx請看得明白這個文章的朋友,也給指點一下。
附上抓包資料(隱去了網域名稱):
IE下:
GET /index.php HTTP/1.1Accept: text/html, application/xhtml+xml, */*Accept-Language: zh-CNUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)Accept-Encoding: gzip, deflateHost: ***.***.cnConnection: Keep-AliveCookie: has_js=1HTTP/1.1 200 OKCache-Control: public, max-age=600Content-Type: text/html; charset=utf-8Content-Language: zh-hansExpires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 05:54:19 +0000ETag: "1376286859-0"Vary: CookieServer: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Drupal-Cache: MISSX-Generator: Drupal 7 (http://drupal.org)X-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 05:54:37 GMTConnection: keep-aliveContent-Length: 9829POST /?q=front-page&destination=front-page HTTP/1.1Accept: text/html, application/xhtml+xml, */*Referer: http://***.***.cn/index.phpAccept-Language: zh-CNUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateHost: ***.***.cnContent-Length: 129Connection: Keep-AliveCache-Control: no-cacheCookie: has_js=1HTTP/1.1 302 RedirectCache-Control: no-cache, must-revalidate, post-check=0, pre-check=0Content-Type: text/html; charset=UTF-8Expires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 06:02:32 +0000ETag: "1376287352"Location: http://***.***.cn/?q=front-pageServer: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Drupal-Cache: MISSSet-Cookie: SESS6a2ee0acf5e5bd0d9cea678a1bb7540f=S2CFFREDq47DBALxDLxlCVzhqnI98MMm4yHPY_k7dho; expires=Wed, 04-Sep-2013 09:35:57 GMT; path=D:/tmp/cook; domain=.***.***.cn; HttpOnlyX-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 06:02:37 GMTConnection: keep-aliveContent-Length: 155
firefox下:
GET /index.php HTTP/1.1Host: ***.***.cnUser-Agent: Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateCookie: Drupal.toolbar.collapsed=0; has_js=1Connection: keep-aliveIf-Modified-Since: Mon, 12 Aug 2013 05:56:10 +0000If-None-Match: "1376286970"HTTP/1.1 200 OKCache-Control: no-cache, must-revalidate, post-check=0, pre-check=0Content-Type: text/html; charset=utf-8Content-Language: zh-hansExpires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 05:56:51 +0000ETag: "1376287011"Server: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Generator: Drupal 7 (http://drupal.org)X-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 05:56:56 GMTConnection: keep-aliveContent-Length: 18842POST /?q=front-page&destination=front-page HTTP/1.1Host: ***.***.cnUser-Agent: Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateReferer: http://***.***.cn/Cookie: Drupal.toolbar.collapsed=0; has_js=1Connection: keep-aliveContent-Type: application/x-www-form-urlencodedContent-Length: 129HTTP/1.1 302 RedirectCache-Control: no-cache, must-revalidate, post-check=0, pre-check=0Content-Type: text/html; charset=UTF-8Expires: Sun, 19 Nov 1978 05:00:00 GMTLast-Modified: Mon, 12 Aug 2013 05:59:42 +0000ETag: "1376287182"Location: http://***.***.cn/?q=front-pageServer: Microsoft-IIS/7.0X-Powered-By: PHP/5.2.17X-Drupal-Cache: MISSSet-Cookie: SESS6a2ee0acf5e5bd0d9cea678a1bb7540f=DjNRVBdGXEVPumZnszKG9U8bAP0dHqx5wp8jFhJV81U; expires=Wed, 04-Sep-2013 09:33:07 GMT; path=D:/tmp/cook; domain=.***.***.cn; HttpOnlyX-Powered-By: ASP.NETDate: Mon, 12 Aug 2013 05:59:47 GMTConnection: keep-aliveContent-Length: 155
自己給自己結貼,終於發現問題出在哪裡了,這真的是我的錯。
因為我把php.ini裡面的一個變數:session.cookie_path的意思理解錯了,填成d:\tmp,所以大家都沒法登陸進去。現在改成空,已經正常了。
補充一下:
session.cookie_path 是指 session 生效的網站域;
session.save_path 是指儲存 session 臨時檔案的路徑。