Помощь в правильном использовании массива $_FILES

volt

Новичок
Здравствуйте! Помогите, пожалуйста, разобраться в данном вопросе. Код не отрабатывает сохранение картинки на сервере. Тут неправильная работа с данными массива, не могу разобраться. Большое спасибо.

<?php
$image_path="../../images/"; /* абсолютный путь */
$rel_image_path="images/"; /*относительный путь*/

if (isset($modify)) {
if ((trim($_FILES["photo"])!="")&&($_FILES["photo"]!="none"))
{
$file_name=@$_FILES["photo"]['tempname'];
$file_type=@substr($file_name, -4);
if (!($file_type==".jpg"||$file_type=="jpeg"))
{
echo "<center><b class=zag>Невірний формат фото.</b></center><br><br>";
@unlink($_FILES["photo"]['tempname']);
$_FILES["photo"]['tempname']="";
}
}

if ((trim($_FILES["photo"])!="")&&($_FILES["photo"]!="none")) {@unlink($image_path."greetings.jpg");
$zz = @copy( $_FILES["photo"], $image_path."greetings.jpg" );
@unlink($_FILES["photo"]);
if (!$zz) { echo $messages['error_photo'];}}

}
?>

<form action="index.php" method="post" enctype="multipart/form-data">
<table border="1">

<tr>
<td align=right valign=bottom>Фото (*.jpg, *.jpeg):</td>
<td colspan=2>
<?php if (file_exists($image_path."greetings.jpg")) {echo "<img src=../../apic.php?400&".$rel_image_path."greetings.jpg><br>";} ?>
<input name="photo" type="file" class="inputs" style="width:400;"></td>
</tr>

</table><center><br>

<input type=submit name=modify value='Змінити' class=buttons style="width:200">
</form>
</body>
</html>
 

volt

Новичок
Спасибо за ответ. В php 5.3 вс работало нормально. Но везде просто было прописано $photo. В php 5.4 нет register_globals - пришлось переписать. Но в таком виде он не хочет работать.

var_dump($_FILES) выдает

array(1) { ["photo"]=> array(5) { ["name"]=> string(10) "ce0490.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpZuKiAf" ["error"]=> int(0) ["size"]=> int(146411) } }

Вывод ошибок показал:
Warning: trim() expects parameter 1 to be string, array given in /home/index.php on line 44

Warning: trim() expects parameter 1 to be string, array given in /home/index.php on line 56


44 - if ((trim($_FILES["photo"])!="")&&($_FILES["photo"]!="none"))

56 - if ((trim($_FILES["photo"])!="")&&($_FILES["photo"]!="none")) {@unlink($image_path."greetings.jpg");
 

Духовность™

Продвинутый новичок
volt
читать по английски не умеешь? тогда воспользуйся переводчиком. тебе явно написали в чем проблема: Warning: trim() expects parameter 1 to be string, array given in /home/index.php on line 44
 

volt

Новичок
volt
читать по английски не умеешь? тогда воспользуйся переводчиком. тебе явно написали в чем проблема: Warning: trim() expects parameter 1 to be string, array given in /home/index.php on line 44
Спасибо, читать умею. Я вообще решение просил. А где ошибка мне и дебагер указать может. Для этого не нужно быть ведущим модератором.
 

Фанат

oncle terrible
Команда форума
я думаю, здесь обе стороны неправы.
причем модераторы, которых на этом форуме 5 человек на одного посетителя, неправы больше.
как минимум хоть один шанс новому человеку дать стоило. резкий ответ которого был спровоцирован хамским тоном "ведущего модератора", а до этого он общался вполне вежливо.

при этом тупо прицепились к слову "[готовое] решение", резко забыв весь предыдущий контекст вопроса.
при том, что разобраться новичку, откуда берется массив вместо строки, достаточно сложно.
можно было бы и объяснить, не давая "готового решения"
 

Фанат

oncle terrible
Команда форума
volt
Смотрим в свой же код и выясняем, как работали с массивом $_FILES.
В коде есть строчки с правильным обращением к нему.
Остальные вызовы надо тоже переписать правильно
 
Сверху