Uploadify и SQL-запрос - PullRequest
       1

Uploadify и SQL-запрос

1 голос
/ 27 сентября 2010

Я использую скрипт загрузки для загрузки файлов в качестве школьного проекта.

//die($_SESSION['ID'].'.....'.$_SESSION['level']);

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $filename = substr(md5(time()), 0, 8)."-".$_FILES['Filedata']['name'];
    $targetFile =  str_replace('//','/',$targetPath) . $filename;
    $time = time();
    $ID = $_SESSION['ID'];

    $sql = mysql_query("INSERT INTO files VALUES(NULL, '$ID', '$targetFile', '$time')");

    move_uploaded_file($tempFile,$targetFile);
    echo "1";
}

Сверху работает $ _SESSION ['id'], однако когда я вошел в $ sql, он возвращается как 0.Есть идеи почему?Я перепроверил все.

Запутался.

Спасибо

Ответы [ 4 ]

1 голос
/ 01 октября 2010

Кажется, SESSION плохо работает с uploadify, я решил это с помощью scriptData uploadify.

Спасибо за все ответы.

0 голосов
/ 27 сентября 2010

Пара вещей здесь не так.Сначала вы должны явно указать свои поля в $ sql:

$sql = 'insert into tablename (fileid,filename,d_uploaded) values ('.$ID.', \''.$targetFile.'\', '.$time.');';

Большинство полей ID не будут VARCHAR, они будут INT.Все VARCHAR являются текстовыми полями, а все INT числовыми.Вы не можете выйти из полей INT, но вам нужно выйти из VARCHAR.

Также не вставляйте пустые поля, чтобы получить поле с автоматическим приращением.Делая SQL так, как я описал выше, вы получаете возможность кодировать только те поля SQL, которые вы вставляете, а остальные поля таблицы будут вставлять значения по умолчанию.

0 голосов
/ 28 сентября 2010

Попробуйте использовать INSERT INTO files SET field=value, field=value, .. и не забудьте очистить пользовательский ввод (например, $ _REQUEST), используя mysql_real_escape_string() (и если у вас включены магические кавычки, чтобы отключить их, если вы решите использовать mysql_real_escape_string().

0 голосов
/ 27 сентября 2010

Должно быть типом вашего столбца mysql.

Убедитесь, что вы используете varchar / text, потому что '$ID' - это string: если ваш тип int (или аналогичный) тогда вы вставите 0.

...