добрейшее утро! помогите найти ошибку в коде, плиз. Это код добавления трех картинок, и описания к проекту. Однако: добавляется в базу (физически) только одна картинка (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>
|
|