2012-05-18 45 views
0

我有表單(POST)發佈到頁面2的頁面1,如果表單發佈顯示結果,如果表單沒有發佈,頁面2打開它顯示基於PHP的其他內容if。 第2頁有鏈接到第3頁,當我張貼表格從第1頁 - >第2頁,並轉到第3頁通過鏈接,然後我點擊回來,並獲得「文件過期」PHP文檔在表單上過期

有人告訴我它n正常,發生了什麼?我假設如果PHP檢查的POST變量不存在,並給頁面不同的內容應該多好。

是否有任何方式使其工作或編碼到瀏覽器中的行爲?

編輯答案:<?php session_cache_limiter('private_no_expire'); ... ?>固定它

+0

嗯......再來? – nachito

+0

[「網頁已過期」PHP中的$ _SESSIONS]可能重複(http://stackoverflow.com/questions/794465/webpage-has-expired-sessions-in-php) – DCoder

+0

我相信這是一個瀏覽器問題。當您返回(通過瀏覽器後退按鈕)到已發送到的頁面時,瀏覽器將會詢問您是要再次發送數據還是爲您提供過期頁面。發生哪種情況將取決於您使用的瀏覽器。不幸的是,它沒有辦法繞過它,因爲這一切都發生在請求被髮送到服務器之前,因此更改PHP代碼將不起作用 – erm410

回答

0

在你的表格處理腳本(第2頁,我認爲),一旦你已經處理過的數據,你應該重定向。這樣用戶就不會看到那個錯誤。

例子:

if (isset($_POST['submit'])) { 
    // save something to database 
    header('Location: http://www.example.com/page2'); 
    exit; 
} 

// other content 
+1

'<?php session_cache_limiter('private_no_expire'); ...?>'解決它 – JohnA