PHP и MySQL вопрос - PullRequest
       7

PHP и MySQL вопрос

0 голосов
/ 15 июля 2009

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

код

// 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 голос
/ 15 июля 2009

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

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

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

0 голосов
/ 15 июля 2009
  1. Установите этот флажок, чтобы убедиться, что путь для перемещения существует, и процесс веб-сервера имеет права на запись в него.
  2. Ваш запрос вставки представляет собой дыру в безопасности, ожидающую внедрения SQL. Чтобы уменьшить вероятность взлома, вы можете использовать следующее:

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

0 голосов
/ 15 июля 2009

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

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

0 голосов
/ 15 июля 2009

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

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

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

1010 * Reference *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...