2011-02-10 159 views
0

真的希望這是有道理的,有人可以指引我正確的方向。在註冊頁面(父頁面),當你輸入許可證代碼從另一個頁面jQuery的阿賈克斯成功函數加載內容與附加的URL包括會話ID:jQuery AJAX和PHP會話問題

success: function(data) { 
    if (data=="RegisterError") { 
     $("#error").show(); 
     $("#processing").hide(); 
    } else { 
     $("#contain").load("download-software.php?sessionid=xXXX #req"); 
     } 
    } 

頁「下載軟件」有以下PHP引用檢查,以確保正在從註冊頁面通過會話ID請求的內容,並重定向你,如果它不是:

<?php 
$code = $_GET['sessionid']; 
if(strcmp($code , 'xXXX' ) != 0) { 
    header("Location: http://www.someotherpage.com"); 
} 
?> 

這工作正常。現在我需要做的是在加載到父頁面的「下載 - 軟件#req」內容中,有一個鏈接,當點擊該鏈接替換已經在父頁面內加載的「下載 - 軟件#req」內容時來自另一個頁面的內容並執行相同類型的會話ID檢查。

我不能得到它的工作。我將以下代碼放置在「下載軟件#req」內容上,其內容爲: <a id="beta"> beta notes $(「#beta」)。click(function(){「req」)。load(「NT7 -SP1-Download.php #betaNotes「); });`

我也試過使用.live函數。我如何開始新的會議並完成這項工作? *answer** 我在父頁面上使用了直播功能,它工作正常。我想這太難了。

+0

您可能希望使用Amazon S3進行此操作。您可以生成僅在成功授權時纔有效的N分鐘網址,並將其傳遞給用戶。 – coreyward 2011-02-10 21:21:48

回答

2

我會避免使用GET查詢字符串參數並使用包含的PHP會話函數。

使用:

<?php 

// initialize the session 
session_start(); 

// assignment call 
$_SESSION['key'] = 'value'; 

?> 

可以在後續頁面請求在同一臺服務器上從會話中檢索數據。

完成會話後,請使用:session_destroy()