我最近問這個問題Posting data with curl - actually refreshing to the next page但我很快意識到,該解決方案是不完全偉大的...嘗試在PHP頁面之間發送數據;郵政/捲曲沒有工作,會議越來越凌亂
所以我通過PHP頁面之間的數據在幾個地方。這裏是我當前的問題:
我靠餅乾,所以我在每一個頁面的頂部是否餅乾已啓用:
session_start();
if (!isset($_COOKIE['PHPSESSID'])) {
if ($_GET['rd'] == '1') {
header('Location: *redirect url*');
} else {
*refresh the page, setting 'rd' to '1'*
}
}
然而,因爲這是每個頁面上的「頭」,它需要是通用的。例如,發送給它的任何帖子或獲取數據(來自另一個頁面或表單)應發送到重定向頁面。
獲取很容易,因爲我可以將它包含在url中,但是我一直在Post方面遇到問題。
我開始捲曲發送數據發佈到下一個頁面,但我意識到,這是不是真的要到頁面
$ch = curl_init($some_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'myvar=something');
curl_exec($ch);
curl_close($ch);$ch = curl_init($some_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'myvar=something');
curl_exec($ch);
curl_close($ch);
捲曲後不會加載$網址;它返回它
所以我被建議使用會議,我很快意識到,它不是一個很好的解決方案;
- 重定向時,如果設置了POST數據到Session變量(存儲),然後使用後的數據每個頁面都需要檢查,如果數據在發佈或會話。
- 效率不高 - 我在兩頁之間發送數據,不一定關於會話的信息。
關於數字2,我設置了另一個會話變量來告訴下一頁,如果發佈數據已被移到會話。但是,每次我必須重置該變量時,它會使事情變得複雜而不整潔。
示例: 我有一個註冊頁面,將表單數據發送到驗證頁面。這兩個都有頭來檢查cookie是否啓用。
發佈數據發送到驗證頁面,如果有問題,我不能將數據發回驗證頁面(告訴用戶有什麼問題),我必須設置會話變量與註冊錯誤。每一次,我都必須取消註冊錯誤變量。
現在我不認爲我在驗證頁面上需要cookies,但我不想要任何漏洞,我不知道我將在稍後添加什麼。
回到問題
- 我需要檢查,如果餅乾每一頁上啓用。
- 我不知道我目前的應用程序是否是最有效的方式(重定向);這是 無疑造成了很大的問題
- 如果有人能告訴我如何 檢查網站的Cookie重定向(和不 別的衝突),這是作爲一個 解決好
- 我不想依靠javascript或隱藏表格;我想要控制體驗
- 我需要有效地在兩頁之間發送數據 。不喜歡某些應用程序的會話,因爲我需要 設置和取消設置 每個頁面的變量。
我知道這是一個很大的任務,但如果有人可以幫助它將不勝感激!
更準確地說,你想要做什麼?爲什麼「在兩頁之間發送數據」?用戶將在頁面之間旅行,並且您需要每個頁面都知道另一個頁面上的數據?這只是爲了完成表格,還是你在做更復雜的事情? – Aerik 2012-04-05 18:28:55
可以說我有兩個頁面:一個表單和另一個驗證。表單通過表單發送發佈數據,另一個檢查錯誤。如果有錯誤,則必須將錯誤發送回窗體以顯示它們。我可以使用會話,但數據僅適用於1頁,並且每次在兩個頁面之間發送數據時,Id都必須設置和取消設置會話變量。在這個例子中,如果我把這兩個頁面放在一起,它會工作,但還有其他一些情況;最重要的檢查cookies和保存發佈數據 - 閱讀我的帖子在底部它解釋了我的主要問題 – Raekye 2012-04-06 15:15:13