с php всё нормально?

M2
На сайте с 11.01.2011
Offline
341
442

Что-то у меня уже сомнения.... кто из нас сумасшедший???

Вот форма:


<form method="post" action="studio.php" enctype="multipart/form-data">
<table style="posiion: relative; float: left;margin-left:-160px;">
<tr>
<td><input type="file" name="masterphoto[]"></td>
</tr>
<tr>
<td><input type="file" name="masterphoto[]"></td>
</tr>
<tr>
<td><input type="file" name="masterphoto[]"></td>
</tr>
<tr>
<td><input type="file" name="masterphoto[]"></td>
</tr>
<tr>
<td><input type="file" name="masterphoto[]"></td>
</tr>
<tr>
<td><input type="submit" value="Отправить файлы" name="submitFiles">
</tr>
</table>
</form>

ОК, начинаем добавлять...


if (!empty($_FILES['masterphoto']))
{
/** begein **/
$ext_array = array('jpeg', 'jpg', 'gif', 'png');

$photos = $_FILES['masterphoto'];


print_r($photos);
die();

вот на этом месте при загрузке двух фоток он мне вполне логично вываливает массив следующего содержания:


Array
(
[name] => Array
(
[0] => photo01.jpg
[1] => photo02.jpg
[2] =>
[3] =>
[4] =>
)

[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
[2] =>
[3] =>
[4] =>
)

[tmp_name] => Array
(
[0] => Z:\tmp\php165.tmp
[1] => Z:\tmp\php166.tmp
[2] =>
[3] =>
[4] =>
)

[error] => Array
(
[0] => 0
[1] => 0
[2] => 4
[3] => 4
[4] => 4
)

=> Array
(
[0] => 87388
[1] => 29913
[2] => 0
[3] => 0
[4] => 0
)

)

Ок, дальше идём...


foreach ($photos['name'] as $key => $value)
{
echo $key . "=>" . $value . "<br>";
echo "<br><br>";
$ext = substr(strrchr($value, '.'), 1);
$file_name = md5(time().strrev($photos['name'][$key])).'.'.$ext;

дальше идёт код добавления, он не существенный.... но PHP мне в цикле показывает ТОЛЬКО 1 файл а не 2! как такое может быть - ума не приложу! Я работаю на денвере, что здесь вообще может быть???

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
systemiv
На сайте с 05.07.2012
Offline
60
#1

Очень распространенная проблема.

Сам недавно столкнулся. Дело в том, что скрипт вызывается 2 раза, для проверки можете запустить


<?php
exec('calc');
?>

Попробуйте вызвать скрипт через консоль, т.к. скрипт вызывает 2 раза именно браузер

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#2

Уберите последние 2 строки. Может они генерируют ошибку, которую вы не видите.

Попробуйте так:


foreach($photos['name'] as $k=>$v)
{
var_dump($v);
echo '<br/><br/>';
}
systemiv:
Очень распространенная проблема.

Проблема чего?

И почему его браузер 2 раза вызывает? Не уж то браузер сам так решил? Я тоже ума не приложу:)

Подпись))
siv1987
На сайте с 02.04.2009
Offline
427
#3

Вызывался бы два раза, там бы либо было оба файла, либо не одного. Судя по коду $photos***91;'name'***93;***91;$key***93; более вероятно ошибка в коде.

VHS-1980
На сайте с 21.05.2010
Offline
91
#4

а говорит ли error.log что нибудь?

systemiv
На сайте с 05.07.2012
Offline
60
#5
Милованов Ю.С:

Проблема чего?
И почему его браузер 2 раза вызывает? Не уж то браузер сам так решил? Я тоже ума не приложу:)

Немного поторопился с ответом, не дочитав до конца.

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

Еще раз извините за мой ответ(выше) не в тему.

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
mark2011:
но PHP мне в цикле показывает ТОЛЬКО 1 файл а не 2!

Второй (photo02.jpg)?

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
bay_ebook
На сайте с 28.05.2010
Offline
111
#7
mark2011:


foreach ($photos['name'] as $key => $value)
{
echo $key . "=>" . $value . "<br>";
echo "<br><br>";
$ext = substr(strrchr($value, '.'), 1);
$file_name = md5(time().strrev($photos['name'][$key])).'.'.$ext;

С пхп все нормально, цикл внимательно нужно читать :)


foreach ($photos['name'] as $key => $value){
echo 'file name '.$key . "=>" . $photos['name'][$key] . "<br>";
echo 'file type '.$key . "=>" . $photos['type'][$key] . "<br>";
echo 'file tmp_name '.$key . "=>" . $photos['tmp_name'][$key] . "<br>";
echo 'file size '.$key . "=>" . $photos['size'][$key] . "<br>";
echo "<br><br>";
}
Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий