Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти ошибку в коде, добавление изображений в БД (php+MySQL) 
:(
    Опции темы
*^angel^*
Дата 2.3.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



добрейшее утро!

помогите найти ошибку в коде, плиз. Это код добавления трех картинок, и описания к проекту. Однако: добавляется в базу (физически) только одна картинка (im_preview), а по остальным файлам записываются только данные, где лежат и какое имя... может я что-то упустила?

вот код:

Код

<?php
if (isset($_POST['enter']))
{
//если установлена данная переменная, значит страница уже загружалась и
//юзер нажал на кнопку "Добавить"

// проверка, загрузились ли файлы картинок
if ( (is_uploaded_file($_FILES['im_preview']['tmp_name'])) &&
  (is_uploaded_file($_FILES['im_mini']['tmp_name'])) &&
  (is_uploaded_file($_FILES['im_big']['tmp_name']))
 )
{
 //файлы загрузились. Соединяемся с базой данных
 if (!$conn = mysql_connect('localhost', 'root', '')){
  exit('<b>Error # ' . mysql_errno() . '. ' . mysql_error() .'.</b>');
 }
 if (!mysql_select_db('ws', $conn)) {
  exit('<b>Error # ' . mysql_errno() . '. ' . mysql_error() . '.</b>');
 }
 //Определяем номер изображений, т.е. начало имени фалов
 if (!$QueryID=mysql_query('INSERT INTO works (namework)
          VALUES("' . $_POST['namework'] . '");', $conn)){
  exit('<b>Error # ' . mysql_errno() . '. ' . mysql_error() . '.</b>');
 }
//начинаем работать с файлами поэтапно - сначала с одним, потом со вторым и третьим
 $FileName=mysql_insert_id($conn);
 $LastID=$FileName; // переменная для дальнейшего обновления именно этой записи
 
 $FileNameP=$FileName."_50"; // имя файла im_preview
 $FileNameM=$FileName."_107"; // имя файла im_mini
 $FileNameB=$FileName."_293"; // имя файла im_big
 
 //проверяем тип файла и расширение
 // для файла im_preview :
 $ImageArrayP=getimagesize($_FILES['im_preview']['tmp_name']);
 switch ((int)$ImageArrayP[2])
  {
  case 1:
   $Type=".gif";
   break;
  case 2:
   $Type=".jpg";
   break;
  default:
   exit('Запрещённый тип файла. Разрешены только файлы ".jpg" и ".gif"<br><a href=javascript:history.back(2)>Попробуйте еще раз</a>');
  }
 $FileNameP.=$Type;
 $PathP=$_SERVER['DOCUMENT_ROOT'] . '/picworks/' . $FileNameP;
 // для файла im_mini :
 $ImageArrayM=getimagesize($_FILES['im_mini']['tmp_name']);
 switch ((int)$ImageArrayM[2])
  {
  case 1:
   $Type=".gif";
   break;
  case 2:
   $Type=".jpg";
   break;
  default:
   exit('Запрещённый тип файла. Разрешены только файлы ".jpg" и ".gif"<br><a href=javascript:history.back(2)>Попробуйте еще раз</a>');
  }
 $FileNameM.=$Type;
 $PathM=$_SERVER['DOCUMENT_ROOT'] . '/picworks/' . $FileNameM;
 // для файла im_big :
 $ImageArrayB=getimagesize($_FILES['im_big']['tmp_name']);
 switch ((int)$ImageArrayB[2])
  {
  case 1:
   $Type=".gif";
   break;
  case 2:
   $Type=".jpg";
   break;
  default:
   exit('Запрещённый тип файла. Разрешены только файлы ".jpg" и ".gif"<br><a href=javascript:history.back(2)>Попробуйте еще раз</a>');
  }
 $FileNameB.=$Type;
 $PathB=$_SERVER['DOCUMENT_ROOT'] . '/picworks/' . $FileNameB;
 
 //копируем файлы на сервер в соответствующую папку
 if( (!move_uploaded_file($_FILES['im_preview']['tmp_name'], $PathP)) &&
   (!move_uploaded_file($_FILES['im_mini']['tmp_name'], $PathM)) &&
  (!move_uploaded_file($_FILES['im_big']['tmp_name'], $PathB))
   ) {
  exit('Не удалось скопировать файл <b>' . $FileName . '</b> или ' . $FileNameM . ' или ' . $FileNameB . '. Проверьте существование
  директории <b>' . $_SERVER['DOCUMENT_ROOT'] . 'picworks/' . '</b>. А также проверьте
  наличие у Вас необходимых прав на запись файлов в указанную директорию!');
 }
 //определяем имя файлов для доступа по протоколу HTTP
 $HTTPNameP='/picworks/' . $FileNameP; // для файла im_preview
 $HTTPNameM='/picworks/' . $FileNameM; // для файла im_mini
 $HTTPNameB='/picworks/' . $FileNameB; // для файла im_big
 //а теперь записываем имя файла в базу
 if (!$QueryID=mysql_query('UPDATE works
       SET im_preview="'.$HTTPNameP.'",
       im_mini="'.$HTTPNameM.'",
       im_big="'.$HTTPNameB.'",
       namework="'.$_POST['namework'].'",
       infowork="'.$_POST['infowork'].'",
       url="'.$_POST['urlwork'].'",
       d_o_w=now()
       WHERE id_work="'.$LastID.'";', $conn)){
  exit('<b>Error # ' . mysql_errno() . '. ' . mysql_error() . '.</b>');
 }
echo 'все ok. ';
} else {
 // один из файлов не загрузился, выводим тип ошибки
 $ErrorArray=array( 'There is no error, the file uploaded with success.',
   'The uploaded file exceeds the upload_max_filesize directive in php.ini.',
   'Большой размер файла. Максимальный размер файла - 50 Кб<br><a href=javascript:history.back(2)>Попробуйте еще раз</a>',
   'The uploaded file was only partially uploaded.',
   'No file was uploaded.');
 exit( ($ErrorArray[$_FILES['im_preview']['error']]) ||
    ($ErrorArray[$_FILES['im_mini']['error']]) ||
    ($ErrorArray[$_FILES['im_big']['error']])
  );
 }
} else {
// если переменная $_POST['enter'] не установлена,
// значит выводим первоначальный вид страницы с формой
?>

<html>
<head>
<title>Форма добавления проекта</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="StyleSheet" type="text/css" href="../style.css">
</head>
<body>
<?php
if(!isset($tpage)) $tpage = "Добавление проекта";
if(!isset($button)) $button = "Добавить"; //Если переменная пустая, то Добавляем и кнопка именуется соответственно
if(!isset($action))
{
//$action = "addworks.php"; //Если переменная пустая, то Добавляем и выполняем соответствующий скрипт
$namework = ""; //При добавлении проекта, поля формы пустые
$infowork = "";
$urlwork = "";
$im_big = "";
$im_mini = "";
$im_preview = "";
}
?>

<form action=<?=$_SERVER['PHP_SELF']?> method="post" name="worksform" enctype=multipart/form-data>
<input type="file" name="im_preview" size="55" class="field" value="<?php echo $im_preview; ?>">
Изображение (107х107):<br>
<input type="file" name="im_mini" size="55" class="field" value="<?php echo $im_mini; ?>">
Изображение (293х165):<br>
<input type="file" name="im_big" size="55" class="field" value="<?php echo $im_big; ?>">
Наименование проекта:<br>
<input type="text" name="namework" size="55" maxlength="255" class="field" value="<?php echo $namework; ?>">
Ссылка на ресурс:<br>
<input type="text" name="urlwork" size="55" maxlength="255" class="field" value="<?php echo $urlwork; ?>">
Описание проекта:<br>
<textarea cols="55" rows="10" name="infowork" class="field"><?php echo $infowork; ?></textarea>
<input type="hidden" name="id_work" value="<?php echo $id_work; ?>">
<input type="button" class="btn" OnClick="window.open('viewworksbefore.php',this.target,'width=700, height=400,'+'location=no,toolbar=no,menubar=no,status=yes,resizeable=yes,scrollbars=yes');return false;" value="Предпросмотр проекта">
<input type="submit" name="enter" class="btn" value="<?php echo $button; ?>">
<input type="button" onclick="javascript:history.back(2)" class="btn" value="Отмена"><br>
<INPUT TYPE='hidden' NAME='MAX_FILE_SIZE' VALUE='51200'>
</form>

<?php
}
?>
</body>
</html>

PM MAIL ICQ   Вверх
penizillin
Дата 2.3.2005, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 10.11.2004

Репутация: 8
Всего: 9



Цитата
может я что-то упустила?
да - самостоятельную попытку отладки.
PM MAIL ICQ   Вверх
IZ@TOP
Дата 3.3.2005, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



*^angel^*, попробуй для начала прописать в начало файла error_reporting(E_ALL); и в php.ini директиву display_errors в On.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0773 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.