2010-08-17 52 views
3

對於皮特的愛我不能讓它接受任何變量到我的SQL數據庫。如果我把靜態信息起作用。我似乎無法通過腳本數據傳遞任何參數,這使得它更具挑戰性,因爲我在上面使用了smarty模板系統。Uploadify不傳遞變量,會話有問題?

我正在嘗試這樣做。

{literal} 
<script type="text/javascript"> 
jQuery(document).ready(function() { 
    jQuery("#fileUpload").uploadify({ 

     'scriptData'  :{'alb_id': '{/literal}$alb_id{literal}','mem_id': '{/literal}$info.mem_id{literal}'}, 
     'uploader': '/ajax/upload/uploadify.swf', 
     'cancelImg': '/ajax/upload/cancel.png', 
     'script': '/ajax/upload/uploader.php', 
     'folder': 'photos', 
     'multi': true, 
     'displayData': 'speed', 
     'fileDesc' : 'Image Files', 
     'fileExt': '*.jpg;*.jpeg;', 
     'simUploadLimit': 200, 
     'width'   : 130, 
     'queueID'  : 'fileQueue', 
     'buttonImg': '/themes/mytheme/gfx/buttons/but_browse.gif'  
    }); 

}); 
</script> 
{/literal} 

在我的模板文件中。上傳部分工作正常。只是不是MySQL。我正在使用內置在腳本中的函數來調整縮略圖的圖像大小,以及不能創建目錄。所有的工作。它只是不會將任何變量傳遞給數據庫。

include_once("../../includes/config/config.inc.php"); 
    //load libraries 
include(DOC_ROOT."/libraries.php"); 


$conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS,1); 
mysql_select_db(SQL_DB,$conn); 

$alb_id = $_REQUEST['alb_id']; 
$mem_id = $_REQUEST['mem_id']; 


if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 

     $extension = ".jpeg"; 
     $photo = build_thumbnailes($tempFile,$extension); 

     $sql ="INSERT INTO `photos`(`mem_id`, `photo`, `photo_med`, `photo_small`, `approved`,`posted`, `upload_date`) 
     VALUES 
     ('$alb_id', '".$photo["ex"]."', '".$photo["med"]."','".$photo["small"]."' , '1', time(), time())"; 
     mysql_query($sql) or die(mysql_error()); 

如果可以,請幫忙。這件事我瘋了。謝謝。

回答

2

嗯,我不知道這是否是「答案」,但我確實發現了一些問題。

  1. 在模板中你有:

    'scriptData': {'alb_id': '{/literal}$alb_id{literal}', 
           'mem_id': '{/literal}$info.mem_id{literal}'}, 
    

    你的Smarty變量$alb_id$info.mem_id將要傳遞字面上(而不是它們的值)。你需要:

    'scriptData': {'alb_id': '{/literal}{ $alb_id }{literal}', 
           'mem_id': '{/literal}{ $info.mem_id }{literal}'}, 
    
  2. 其次,你應該檢查你的文件是否真的是你的PHP中的上傳文件。相反的:

    if (!empty($_FILES)) { 
        $tempFile = $_FILES['Filedata']['tmp_name']; 
    

    用途:

    if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) { 
        $tempFile = $_FILES['Filedata']['tmp_name']; 
    

我真的懷疑你沒有得到你從想你得到表單中的數據。你怎麼知道上傳工作?你怎麼知道這些值是從表單中傳過來的?您可能需要打印出表單中的變量,看看您是否真的獲得了您的期望。

你從MySQL中得到一個錯誤嗎?還是數據不顯示?提供一些更多的信息可能會在這裏得到更好的答案。

+0

我將更改腳本數據部分。感謝那。縮略圖功能正在工作,因爲我看到用3種不同尺寸爲圖像創建的目錄。我可以通過ftp查看所有新文件。這部分工作。如果我真的放入文本數據而不是變量,數據庫部分也可以工作。由於某種原因,3張照片尺寸的名稱到數據庫或頂部的請求沒有通過任何Var。 – 2010-08-17 05:16:22

+0

一些如何,它現在工作。感謝smarty Vars的改正。我相信我的SQL語法在php文件中是錯誤的,但它沒有在日誌或任何東西中得到任何錯誤。唯一沒有工作的部分是mysql,現在它正在做這兩件事。謝謝您的幫助。 – 2010-08-18 23:21:13

0

一個簡單的方法來測試你的腳本是創建一個正常的文件輸入在你指向upload.php的行動。所以如果有錯誤,你會看到它。

是否有可能build_tumbnailes正在拋出一個錯誤?

-1

唯一需要的是刪除{literal}。那麼它應該工作!