2011-06-22 40 views
1

刷新http://mydomain.com後,它將生成一個隨機ID以顯示在頁面上。如何將當前網址ID保存到會話中,然後在查看下一次提交時更新它

例如,http://mydomain.com生成54是第一次,並且在重新加載,112等

我想所以它重新加載,每次各隨機生成的ID的保存到會話,我可以回到最後一個。例如,它第一次節省了54個會話,並且當http://mydomain.com重新加載並生成112時,我可以鏈接回到54.

我無法使用HTTP_REFERER或REQUEST_URI,因此我嘗試自行工作版本,但它只保存一次。我無法弄清楚如何在查看下一個ID時更新它。

if(empty($_SESSION['lastURL'])) { 
     $_SESSION['lastURL'] = $submissionId; // $submissionId is randomly generated 
      } else { 
     echo $_SESSION['lastURL']; 
    } 

是我目前的代碼。我應該在哪裏更新會話以存儲下一個ID?

原因是它保持不着火是因爲它不斷髮射一個額外的ajax請求,所以我每次都得到一個隨機生成的id。

我(和朋友的幫助下)想出了通過使用下面的代碼,並設置它,它每次隨機觸發前:

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest'){ 
    // Not an ajax request - just a normal page load 
    $_SESSION['lastid'] = $_SESSION['currentid']; 
    $_SESSION['currentid'] = $submissionId; 
} 

回答

2

您只設置$_SESSION['lastURL']一次,因爲它只有empty()一次。每當你生成一個新的ID時,你都需要更新這個值(因此使它成爲新的「舊」ID)。

1

記得有session_start()在文件的頂部會話正在存儲和讀取,以便您可以完全訪問它們

1

如果你想保存所有的ID,你需要把它們放入數組:

if (!isset($_SESSION['url_list'])) 
{ 
    $_SESSION['url_list'] = array(); 
} 

$_SESSION['url_list'][] = $submissionId; 

// see all entries 
var_dump($_SESSION['url_list']); 

現在你把所有的ID的歷史,因爲會議開始。

相關問題