2011-11-07 107 views
0

我有一個系統,用戶登錄並立即將其引導到運行一些查詢並輸入到會話變量中的PHP頁面。 PHP完成執行後,它將用戶重定向到主頁面。我想知道如何設置它,這樣當用戶刷新主頁面時,它會將它們重定向到前一頁面,在主頁面顯示之前計算可以再次運行。我根本無法將兩頁合併在一起。有誰知道我能做到這一點?PHP重定向刷新

編輯:PHP包括最接近我需要的,但問題是,當我使用AJAX提交表單時,第一個文件中的會話變量用數據庫中的新數據更新。這些變量需要保持靜態,直到用戶刷新實際頁面。有誰知道我可以如何包含這個表單,但是讓Jquery看不見它?

+1

'require'calculate.php';'將是通常的方式去... – deceze

+0

除非他想要執行登錄過程一次,這可能是這種情況。在這種情況下,位置可能是更好的選擇。 –

+0

在功能方面真正的目標是什麼?你如何定義一個「刷新」?你刷新什麼樣的價值? – deceze

回答

0

在登錄表單中,使其提交至page_with_awesome_calculations_and_queries_to_session_variables.php。假設在該頁面中沒有輸入發送,請在那裏進行計算查詢和會話,然後將位置標題發送到新頁面。

header('Location: 'index.php'); 

這將導致瀏覽器中的地址欄實際更改爲index.php,刷新將使用戶粘在那裏。

您還應該保護您的page_with_awesome_calculations_and_queries_to_session_variables.php以禁止訪問,除非設置了正確的$_POST變量。

1

您可以將值存儲到$_SESSION和其他每個負載,轉發到其他頁面。

// Start session 
session_start(); 

// If the session variable is set... 
if (isset($_SESSION['loadCount']) { 

    // Increase the count 
    $_SESSION['loadCount']++; 

    // If it is even... 
    if ($_SESSION['loadCount'] % 2) { 

     // Reidrect 
     header('Location: /calculate-again.php'); 
     die(); 

    } 


} else { 

    $_SESSION['loadCount'] = 1; 
} 
0

mainpage.php收到一個URL參數t這是劃時代的時間戳。

每當calculation.php重定向到mainpage.php它將通過歷元時間戳。如果mainpage.php發現曆元時間戳早於5秒,它將重定向回calculation.php並退出。

mainpage.php

if (time() - $_GET['t'] > 5) 
{ 
    header('Location: calculation.php'); 
    die(); 
} 
else 
{ 
    // proceed normally 
} 

calculation.php

// perform calculation 
header('Location: calculation.php?t=' . time()); 
0

添加

<? 
require 'calculations.php'; 

// Mainpage goes here 
?> 

的炫魅的頂部。這使它成爲主頁面加載之前運行的mainPage的擴展。