2010-08-17 59 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}。那么它应该工作!