我想建立一個網站,運行時不刷新,使用jquery和PHP來填充滑入/滑出的div。基本工作正常,但我無法傳遞會話值。2 session_id()在我的網站上的麻煩 - PHP/Jquery
我有一個首先在PHP中捕獲「$ user」的登錄面板,然後存儲爲會話變量$ _SESSION ['user']。
然後我可以使用它的第一頁OK(第一頁被通過的index.php寫的。) 後續頁的jQuery叫,如:
$(".scrollclick").click(function() {
var show = this.getAttribute("id");
$("#page2content").load("showpage2.php?show="+ show);
$("#homepagecontent").hide("slide", { direction: "left" }, 1000);
$("#page2content").css("visibility","visible");
$("#page2content").show("slide", { direction: "right" }, 1000);
其中變量「秀」的由來從可點擊的div圖像名稱。再次一切正常。
但是,問題在於,在初始主頁加載之後,會話變量與其他加載的PHP頁面不同。
我知道使用session_start();在每個PHP腳本的頂部,我用echo'ed session_id()來證明會話正在工作,奇怪的是會話ID不同。
我甚至還有其他腳本在其他腳本中非常高興地填充了會話變量。
我似乎已經證明,網站上的其他每個PHP腳本都會創建帶有SAME會話ID的頁面,除了保存不同的主頁。麻煩的是,它是主頁會話,它包含我想要傳播的「用戶」變量。
我已經在Chrome,IE和FF中測試過它。全部都一樣。結果是兩個會話ID - 一個用於主頁,另一個用於所有其他用戶。
我猜測其他頁面中有一些是以某種方式刷新會話,如session_write_close(),但我找不到它。我已經使用一些現成的(偉大的)腳本(jquery聊天,tutorialzine登錄演示)創建了該站點,因此他們可能正在玩耍。
我今天剛剛設置了幾個做大致相同的事情的虛擬頁面,他們工作正常,所以那裏有一個真正愚蠢的錯誤的地方!
可能的解決方法?
我甚至試圖找到一種方法來手動傳播PHP調用userid,但努力獲得變量到Javascript(爲jquery調用)[我可以得到這個工作確定],然後回到PHP? user = xxxx字符串,這樣我就可以將它返回到另一端。 [不能得到這個工作]
我見過的建議使用一些建議:
var username = <?php echo $user;?>;
有人建議報價,有些則沒有。用引號,它只是被解釋爲一個字符串,沒有它似乎只是停止在其軌道上的JavaScript死亡
有沒有人有任何指向會議問題或變量解決方法?
該網站的結構是平的btw,所有(大多數)在一個域中的一個目錄。
不勝感激!(誰的人現在浪費3天轉圈圈)
TonyJ
從經驗來看,session不會被ajax遺留下來,也沒有任何我能找到的工作。我很想看看是否有人可以把它關掉。 此外,瀏覽器無關緊要,因爲PHP在服務器上運行 - 無論瀏覽器是什麼,瀏覽器都會發送相同的信息。 – 2010-07-14 19:36:28