2012-06-30 30 views
0

剛開始的時候,我讀過了與本主題相關的所有其他Stack Overflow問題,但沒有一個提供給我解決方案。一個有希望的鏈接,即將死去。顯然,整個swfupload論壇不再存在。SWFupload中的PHP會話變量

我的問題當然與將會話變量傳遞給處理上載的實際PHP並將行插入到MySQL數據庫中有關。該SQL行中的兩個字段是來自登錄用戶的會話變量。

基於文檔和我從其他線程讀取,這是我的代碼(或相關部分):

這是我從主上傳頁面的JavaScript代碼。還有更多,但這是相關的。此代碼是我在模板函數中使用的$content變量的一部分,因此它的PHP語法。請注意,當我在瀏覽器中檢查此代碼時,它會在那裏呈現正確的值。現在

var swfu; 

window.onload = function() { 
    var settings = { 
     flash_url : "js/swfupload/swfupload.swf", 
     upload_url: "process_upload.php", 
     post_params: { 
      "user_id" : "'.$_SESSION['user_id'].'", 
      "school_id" : "'.$_SESSION['school_id'].'" 
     }, 
     file_size_limit : "1000 MB", 
     file_types : "*.wmv; *.mpg; *.avi; *.vob; *.mov; *.m4v; *.mpeg; *.mkv; *.flv; *.3gp", 
     file_types_description : "All Files", 
     file_upload_limit : 10, 

,在我process_upload.php文件,如果我這樣做:

$user_id = $_POST['user_id']; 
$school_id = $_POST['user_id']; 

然後在查詢中使用這些變量:

mysql_query("INSERT INTO table SET name='".$file_name."', school_id='".$school_id."', user_id='".$user_id."'") or die(mysql_error()); 

查詢是成功的,我得到一個輸入數據庫中,但它不填寫user_idschool_id,我的錯誤日誌顯示該行上的未定義索引錯誤。

回答

0

因此,顯然我缺少的是process_upload頁面上的會話ID。所以我這樣做了,它現在似乎帶有我的會話價值。

上傳頁面:

 post_params: { 
      "PHPSESSID" : "'.session_id().'", 
      "user_id" : "'.$_SESSION['user_id'].'", 
      "school_id" : "'.$_SESSION['school_id'].'" 
     }, 

進程頁:

if (isset($_POST["PHPSESSID"])) { 
    session_id($_POST["PHPSESSID"]); 
} else if (isset($_GET["PHPSESSID"])) { 
    session_id($_GET["PHPSESSID"]); 
} 

session_start(); 

$user_id = $_POST['user_id']; 
$school_id = $_POST['school_id']; 

然後我用我的查詢這些變量,我們都很好!