Загрузить не передаваемые переменные, проблема с сессией? - PullRequest
3 голосов
/ 17 августа 2010

Ради любви к Питу, я не могу заставить его принимать какие-либо переменные в моей базе данных SQL. Если я добавлю статическую информацию, это сработает. Кажется, я не могу передать какие-либо параметры с помощью scriptdata, и это усложняет задачу, потому что я использую систему шаблонов smarty сверху.

Я пытался это сделать.

 {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());

Пожалуйста, помогите, если можете. Я схожу с ума от этой вещи. Спасибо.

Ответы [ 3 ]

2 голосов
/ 17 августа 2010

Ну, я не знаю, является ли это "ответом", но я вижу пару проблем.

  1. В вашем шаблоне у вас есть:

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

    Ваши умные переменные $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 голосов
/ 20 апреля 2014

Единственное, что нужно, это удалить {literal}.Тогда это должно работать!

0 голосов
/ 17 августа 2010

Простой способ протестировать ваш скрипт - это создать обычный файл ввода в обычной форме, действие которого вы указываете на upload.php. Так что, если есть ошибка, вы увидите ее.

Возможно ли, что build_tumbnailes выдает ошибку?

...