2010-05-05 95 views
0

基本上我討厭一個衛星網站,其中包括一個完全不同的服務器form.php。PHP的http包括不保存會話

<?php 
    include("http://blah.com/form.php"); 
?> 

在其他場次加載類和其他各種東西的form.php的,並生成一個動態的形式基於一噸的MySQL數據。不重要。我的問題是,當表格被稱爲我也開始會議。但遠程服務器實際上並沒有被客戶訪問過。會議什麼留下來。每次刷新頁面時,都會拋棄舊會話。

這樣做的全部原因是我需要將驗證錯誤發送回原始窗體並顯示出來。 (這是一個事物的陣列,如「名字是必填字段」)

主服務器上的代碼看起來是這樣的......

<?php 
    include("config.php"); // This is loading the config file with the session_start() 
    Process($id) { 
     // Do a bunch of form processing and store errors in $this->errors 
     $_SESSION['errors'] = $this->errors; 
    } 

    ShowForm($id) { 
     // This loads the form and everything. 
     echo '<div id="errors">'.print_r($_SESSION['errors']).'</div>'; // This is what is returning nothing on the other page. 
    } 
?> 

所以基本上是腳本從遠程站點叫,但會話將不會保存並在刷新時拋棄......我假設它是因爲實際的主服務器永遠不會加載到用戶瀏覽器中。

有沒有人知道解決這個問題的方法/解決方法?或者可能有其他解決方案?任何工作。

謝謝

+0

你之前,包括調用session_start()的?或者是在遠程包含內部啓動的會話? – 2010-05-05 18:01:23

+0

當然可以。 $ _SESSION全局設置正在設置,但其空和session_id正在返回id,但在每次重新啓動時都會更改。 – sct 2010-05-05 18:02:31

+0

犯錯。刷新*不重新啓動,哈哈。 – sct 2010-05-05 18:02:56

回答

0

這確實是可怕的設計。

include("http://blah.com/form.php?var=1&error=First%20name%20is%20a%20required%20field"); 

你要想到XMLRPC或數據交換的一些其他文明的方式

+0

Bleh是啊,但這個項目是非常必要的。如果你明白我的意思,我想在成立領導者表格時儘可能地從聯盟成員手中接受盡可能多的工作。我們制定了運動,給他們一個包括,其餘的照顧。我試圖避免GET xD – sct 2010-05-05 18:11:45

+0

@sct更好地嘗試實現HTTP協議是什麼以及它是如何工作的。它會爲您節省幾個小時找到不存在的解決方案 – 2010-05-05 18:19:52

+0

好的。我現在會研究它。謝謝。 – sct 2010-05-05 18:23:37