PHP и MySQL вопрос

0

Привет всем, у меня есть некоторые проблемы... вопрос в том, что я хочу получить информацию из формы и сохранить ее в базе данных, данные (комментарий, загрузка изображений и электронная почта), когда я сделал это, он дал предупреждение

код

// move file from temp location on server to your uploads folder
  move_uploaded_file($F1["tmp_name"], "Uploads/$F1[name]");
  print "Stored in: Uploads/$F1[name]";


// save location of upload to text file uploads.txt for later use

$datafile = fopen("uploads.txt","a");
flock($datafile,1);
fwrite($datafile, "Uploads/$F1[name]\n");
flock($datafile,3);
fclose($datafile);




// divide size by 1024 to get it in KB
/*  if ($F1["size"] / 1024 > 50) {
    print "Your gif file is too large! Less that 50KB please!";
    exit(0);
  }*/

 if (!(IsSet($_FILE["fname"]))) {




  $query="insert into guestbook (comments, email, img,display) values
  ('$_POST[comments]','$_POST[email]','some address  ', '0')";}

else

$query="insert into guestbook (comments, email, img, display) values
  ('$_POST[comments]','$_POST[email]','some addres', '$_POST[0]')";

предупреждение, которое я получил,

Предупреждение: move_uploaded_file (Uploads/holder.jpg): не удалось открыть поток: нет такого файла или каталога в (адрес) в строке 48

Предупреждение: move_uploaded_file(): Невозможно переместить '/tmp/php4OAZMC' в 'Uploads/holder.jpg' в (некоторый адрес) в строке 48 Сохранено в: Uploads/holder.jpg

как я могу это исправить?

заблаговременно

Теги:

4 ответа

1

Я думаю, что ему нужен абсолютный путь для сохранения файла, а не относительно местоположения script, т.е.

/home/meme/www/example.com/Uploads/

Также проверьте свои разрешения для каталога загрузки. Также еще один маленький совет, который сохранит ваш бекон в будущем - сохраните каталог и имена файлов в нижнем регистре; то вы не будете укусаться в нижней части когда-нибудь в будущем, когда ваш код ищет файл или каталог, которого нет, потому что ваша файловая система чувствительна к регистру!

0
  • Убедитесь, что путь перехода к существующему существует, и ваш процесс веб-сервера имеет права на его запись.
  • Ваш запрос на вставку - это уязвимое отверстие безопасности, ожидающее только инъекции SQL. Вы можете использовать следующее, чтобы уменьшить вероятность взлома:

    $comments = mysql_real_escape_string ($ _ POST ['comments']); $ email = mysql_real_escape_string ($ _ POST ['email']); $ query = "вставить в гостевую книгу (комментарии, email, img, display) значения     ('{$ comments}', '{$ email}', 'some address', '0')";

0

Уже существует ли Uploads/folder? Если нет, попробуйте создать его в первую очередь. Это может вызвать ошибку.

Кроме того, его хорошая идея проверить, работает ли move_uploaded_file() или нет. Он возвращает true, если он работает, и false, если нет.

Также, как уже упоминалось, попробуйте также использовать абсолютный путь.

Ссылка

  • 0
    Определенно хорошая идея. Однако в этом случае move_uploaded_file () фактически выдает ошибку.
  • 0
    Да, я знаю, что это вызвало ошибку, я просто давал несколько советов, чтобы он мог корректно завершиться, если загрузка файла не удалась по неизвестной причине и т. Д.
0

Вы также должны убедиться, что ваша папка Uploads установлена ​​правильно. Для целей тестирования chmod загружает папку на 777 с помощью вашего любимого FTP-клиента.

Удостоверьтесь, что, когда вы будете готовы применить свою загрузку, вы убедитесь, что вы правильно защищаете папку (убедитесь, что не только кто-то может ее записать), и убедитесь, что вы установите фильтры для файлов типов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню