Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибка в коде [5]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (7): « 1 2 3 4 [5] 6 7 »   

> Описание: Не могу найти ошибку в коде
armancho7777777 Супермодератор
Отправлено: 17 Октября, 2011 - 09:59:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Мелкий пишет:
armancho7777777 пишет:
А почему?

Потому что вам этого хочется?

PHP:
скопировать код в буфер обмена
  1. $ImgDir = 'ddd';
  2. $e = 'fff';
  3. $path=$ImgDir."/".$e;
  4. $path2="$ImgDir/$e";
  5. if ($path === $path2) echo 'идентично';

Признаю Мелкий, был не прав) Извиняюсь)
Я перепутал с:
PHP:
скопировать код в буфер обмена
  1.  $path="$ImgDir/$e" != $path2='$ImgDir/$e';
 
 Top
СЕРьГА
Отправлено: 17 Октября, 2011 - 09:59:25
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




illy пишет:
Значит ошибка всё ещё есть.
Давай весь код как есть сейчас.


это код файла photo.php:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $ImgDir="img"; // Каталог для хранения изображений
  3. @mkdir($ImgDir,666); // Создаем, если его еще нет
  4. // Проверяем, нажата ли кнопка добавления фотографии
  5. if(@$doUpload) {
  6. // Проверяем, принят ли файл
  7. if(file_exists($File)) {
  8. // Все в порядке — добавляем файл в каталог с фотографиями
  9. // Используем то же имя, что и в системе пользователя
  10. Copy($File,"$ImgDir/".basename($File_name));
  11. }
  12. }
  13. // Теперь считываем в массив наш фотоальбом
  14. $d=opendir($ImgDir); // открываем каталог
  15. $Photos=array(); // изначально альбом пуст
  16. // Перебираем все файлы
  17. while(($e=readdir($d))!==false) {
  18. // Это изображение GIF, JPG или PNG?
  19. if(!ereg("^(.*)\\.(gif|jpg|png)$",$e,$P)) continue;
  20. // Если нет, переходим к следующему файлу,
  21. // иначе обрабатываем этот
  22.    $path=$ImgDir."/".$e; // адресa
  23. $sz=GetImageSize($path); // размер
  24. $tm=filemtime($path); // время добавления
  25. // Вставляем изображение в массив $Photos
  26. $Photos[$tm] = array(
  27. 'time' => filemtime($path), // время добавления
  28. 'name' => $e, // имя файла
  29.  
  30. 'url' => $path, // его URI
  31. 'w' => $sz[0], // ширина картинки
  32. 'h' => $sz[1], // ее высота
  33. 'wh' => $sz[3] // "width=xxx height=yyy"
  34. );
  35. }
  36. // Ключи массива $Photos — время в секундах, когда была добавлена
  37. // та или иная фотография. Сортируем массив: наиболее "свежие"
  38. // фотографии располагаем ближе к его началу.
  39. krsort($Photos);
  40. // Данные для вывода готовы. Дело за малым — оформить страницу.
  41.  
  42. ?>


а это код, который отправляет данные:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>    <body>
  2.     <form action=photo.php method=POST enctype=multipart/form-data>
  3.     <input type=file name=File><br>
  4.     <input type=submit name=doUpload value="Закачать новую фотографию">
  5.     </form>
  6.     <?foreach($Photos as $n=>$Img) {
  7.    echo '<img src='.$Img['url'].' '.$Img['wh'].' alt="Добавлена '.date("d.m.Y H:i:s",$Img['time']).'">';
  8.    }
  9.    ?>
  10.     </body>
  11. </html>
  12.  
  13.  

(Отредактировано автором: 17 Октября, 2011 - 10:00:52)

 
 Top
Мелкий Супермодератор
Отправлено: 17 Октября, 2011 - 10:08:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ну ладно, синтаксических ошибок нет.

СЕРьГА пишет:
if(@$doUpload) {

С чего вы взяли, что это условие когда-нибудь выполнится?
http://php.su/security/?globals


-----
PostgreSQL DBA
 
 Top
morosit
Отправлено: 17 Октября, 2011 - 10:32:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




СЕРьГА пишет:
if(file_exists($File)) {

А это выполнится?
 
 Top
СЕРьГА
Отправлено: 17 Октября, 2011 - 10:35:21
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Мелкий пишет:
Ну ладно, синтаксических ошибок нет.


что значит синтаксических ошибок нет. Это в photo.php может их нет, а при открытии скрипта отправки данных же выводит:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in Z:\home\localhost\www\site\1.php on line 8
 
 Top
Мелкий Супермодератор
Отправлено: 17 Октября, 2011 - 10:41:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




СЕРьГА пишет:
что значит синтаксических ошибок нет

Как что? В приведённом куске синтаксических ошибок нет.

СЕРьГА пишет:
при открытии скрипта отправки данных же выводит:

Дык вам и пишут и в каком файле, и на какой строке синтаксическая ошибка. Туда и смотрите +- пару строк.


-----
PostgreSQL DBA
 
 Top
illy
Отправлено: 17 Октября, 2011 - 10:52:17
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




Фотки грузятся в папку img норм.
А вот на странице отправки фото ошибка
Warning: Invalid argument supplied for foreach() in z:\home\test1.ru\www\phpsu\sphoto.php on line 7
откуда ему брать $Photos если его нету?

вставил в photo.php

PHP:
скопировать код в буфер обмена
  1. krsort($Photos);
  2. // Данные для вывода готовы. Дело за малым — оформить страницу.
  3. foreach($Photos as $n=>$Img) {
  4.    echo '<img src='.$Img['url'].' '.$Img['wh'].' alt="Добавлена '.date("d.m.Y H:i:s",$Img['time']).'">';
  5.    }
  6.  

и вывело фотки с датой добавления


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
СЕРьГА
Отправлено: 17 Октября, 2011 - 10:57:02
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




morosit пишет:
СЕРьГА пишет:
if(file_exists($File)) {

А это выполнится?


а почему нет??
 
 Top
armancho7777777 Супермодератор
Отправлено: 17 Октября, 2011 - 11:11:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Или из экшена формы удалите это photo.php,
и подключите его инклюдом к файлу, где форма,
или же этот код :
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($Photos as $n=>$Img) {
  3.    echo '<img src='.$Img['url'].' '.$Img['wh'].' alt="Добавлена '.date("d.m.Y H:i:s",$Img['time']).'">';
  4.    }
  5.  

... перекиньте в photo.php.
 
 Top
СЕРьГА
Отправлено: 17 Октября, 2011 - 11:19:28
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




illy пишет:
Фотки грузятся в папку img норм.
А вот на странице отправки фото ошибка
Warning: Invalid argument supplied for foreach() in z:\home\test1.ru\www\phpsu\sphoto.php on line 7
откуда ему брать $Photos если его нету?

вставил в photo.php

PHP:
скопировать код в буфер обмена
  1. krsort($Photos);
  2. // Данные для вывода готовы. Дело за малым — оформить страницу.
  3. foreach($Photos as $n=>$Img) {
  4.    echo '<img src='.$Img['url'].' '.$Img['wh'].' alt="Добавлена '.date("d.m.Y H:i:s",$Img['time']).'">';
  5.    }
  6.  

и вывело фотки с датой добавления


да, но как тогда должен выглядеть код отправки данных? как я понимаю, там форича уже быть не должно?
 
 Top
morosit
Отправлено: 17 Октября, 2011 - 12:08:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




СЕРьГА пишет:
а почему нет??
а откуда берется переменная $File?
 
 Top
СЕРьГА
Отправлено: 17 Октября, 2011 - 12:27:26
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




morosit пишет:
СЕРьГА пишет:
а почему нет??
а откуда берется переменная $File?


как откуда?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.     <input type=file name=File><br>
 
 Top
morosit
Отправлено: 17 Октября, 2011 - 13:01:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




СЕРьГА пишет:
<input type=file name=File><br>
это вы передаете данные методом POST
и получить их в photo.php можно так:

а я этой строки у вас не вижу
 
 Top
illy
Отправлено: 17 Октября, 2011 - 13:03:22
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




СЕРьГА пишет:
да, но как тогда должен выглядеть код отправки данных? как я понимаю, там форича уже быть не должно?

зачем он там нужен, если $Photos находится в photo.php ?


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
СЕРьГА
Отправлено: 17 Октября, 2011 - 13:17:28
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




illy пишет:
СЕРьГА пишет:
да, но как тогда должен выглядеть код отправки данных? как я понимаю, там форича уже быть не должно?

зачем он там нужен, если $Photos находится в photo.php ?


сделал, но после отправки данных лишь пустой браузер.
 
 Top
Страниц (7): « 1 2 3 4 [5] 6 7 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB