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
Форумы портала PHP.SU :: Версия для печати :: Ошибка в коде [4]
Форумы портала PHP.SU » » Если скрипт не работает » Ошибка в коде

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

46. СЕРьГА - 16 Октября, 2011 - 06:57:05 - перейти к сообщению
illy пишет:
тогда поменяй формат на php
PHP:
скопировать код в буфер обмена
  1. <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. <?PHP
  7. foreach($Photos as $n=>$Img) {
  8. echo '<img src='.$Img['url'].' '.$Img['wh'].' alt="Добавлена '.date("d.m.Y H:i:s",$Img['time']).'">';
  9. }
  10. ?>
  11. </body>


ну поменял. но пишет:

Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\site\1.php on line 7
47. armancho7777777 - 16 Октября, 2011 - 08:15:30 - перейти к сообщению
СЕРьГА пишет:
Warning: Invalid argument supplied for foreach()

$Photos не массив, или пустой массив. Прочитайте его c помощью print_r(), какой результат?
48. Мелкий - 16 Октября, 2011 - 10:36:02 - перейти к сообщению
armancho7777777 пишет:
или пустой массив

На пустой массив foreach так же адекватно реагирует. Отрабатывает 0 итераций.
49. СЕРьГА - 16 Октября, 2011 - 14:24:08 - перейти к сообщению
armancho7777777 пишет:
СЕРьГА пишет:
Warning: Invalid argument supplied for foreach()

$Photos не массив, или пустой массив. Прочитайте его c помощью print_r(), какой результат?


попробовал. пишет:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in Z:\home\localhost\www\site\1.php on line 8
50. armancho7777777 - 16 Октября, 2011 - 17:19:17 - перейти к сообщению
Мелкий пишет:
На пустой массив foreach так же адекватно реагирует. Отрабатывает 0 итераций.
Да, точно. Запарился. У него там переменная.
(Добавление)
СЕРьГА пишет:
syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

По ходу какая-та строка с переменной в перемешку затисалась...
Или переменная с цыфрой без скобок в строке...
Одним словом, битая инфа попала в $Photos
Нужен весь код Ваш, который может иметь отношение к этой ошибке... К лже массиву этому. Т.е. что попадает в $Photos, как попадает, откуда попадает и т.д.
И если это всётаки массив, то надо просмотреть все элементы этого массива на предмет синтаксической ошибки, допущенной в том, что попадает в них.
И ещё, хередоки есть поблизости?
51. Мелкий - 16 Октября, 2011 - 18:30:53 - перейти к сообщению
armancho7777777 пишет:
Одним словом, битая инфа попала в $Photos

Каким образом? Ведь PHP вовсе не исполнил ни единой строки, т.к. нашёл ошибку на этапе разбора.
52. СЕРьГА - 16 Октября, 2011 - 19:54:22 - перейти к сообщению
armancho7777777 пишет:

Нужен весь код Ваш, который может иметь отношение к этой ошибке... К лже массиву этому. Т.е. что попадает в $Photos, как попадает, откуда попадает и т.д.
И если это всётаки массив, то надо просмотреть все элементы этого массива на предмет синтаксической ошибки, допущенной в том, что попадает в них.
И ещё, хередоки есть поблизости?


ну так этот код в самом первом сообщении этой темы. А в массив, как уже сказал Мелкий, ничего не попадает, так как скрипт, отправляющий данные,. не исполняется.
53. armancho7777777 - 17 Октября, 2011 - 09:01:34 - перейти к сообщению
Вот, посмотрел Ваш файл мельком:
Что это ?
PHP:
скопировать код в буфер обмена
  1. $path="$ImgDir/$e"; // адрес


А эта "строка" в перемешку с переменными является элементом этого массива $Photos с ключом "url",
которую Вы пытаетесь получить из $Img['url'].

При переборе натыкается на неё и выдаёт ошибку.

Что не понятного?

Должно быть так:
PHP:
скопировать код в буфер обмена
  1. $path=$ImgDir."/".$e; // адрес

(Добавление)
Мелкий пишет:
Каким образом? Ведь PHP вовсе не исполнил ни единой строки, т.к. нашёл ошибку на этапе разбора.

Вот таким образом:
PHP:
скопировать код в буфер обмена
  1. $path="$ImgDir/$e"; // адрес

Это попало в массив.
Синтаксически всё верно в этой строке, как думаете?)
(Добавление)
armancho7777777 пишет:
По ходу какая-та строка с переменной в перемешку затисалась...

Как и говорил...
54. Мелкий - 17 Октября, 2011 - 09:32:04 - перейти к сообщению
armancho7777777 пишет:
Синтаксически всё верно в этой строке, как думаете?)

Да, абсолютно корректна. И является аналогом:
armancho7777777 пишет:
$path=$ImgDir."/".$e; // адрес

Хотя согласен, второй вариант записи мне нравится больше.

И советую вам почитать, на каком этапе может появиться Parse error.

А автору - почитать про синтаксис PHP. Имхо, синтаксические ошибки даже новичок должен исправлять самостоятельно.
55. illy - 17 Октября, 2011 - 09:34:18 - перейти к сообщению
Значит ошибка всё ещё есть.
Давай весь код как есть сейчас.
56. armancho7777777 - 17 Октября, 2011 - 09:41:09 - перейти к сообщению
Мелкий пишет:
Да, абсолютно корректна. И является аналогом:

Да Вы что такое говорите?)
Вот Серьга перепишет эту строку кода, и ошибка пропадёт.
А почему?
57. СЕРьГА - 17 Октября, 2011 - 09:47:05 - перейти к сообщению
armancho7777777 пишет:
Вот, посмотрел Ваш файл мельком:
Что это ?
PHP:
скопировать код в буфер обмена
  1. $path="$ImgDir/$e"; // адрес


А эта "строка" в перемешку с переменными является элементом этого массива $Photos с ключом "url",
которую Вы пытаетесь получить из $Img['url'].

При переборе натыкается на неё и выдаёт ошибку.

Что не понятного?

Должно быть так:
PHP:
скопировать код в буфер обмена
  1. $path=$ImgDir."/".$e; // адрес

(Добавление)
Мелкий пишет:
Каким образом? Ведь PHP вовсе не исполнил ни единой строки, т.к. нашёл ошибку на этапе разбора.

Вот таким образом:
PHP:
скопировать код в буфер обмена
  1. $path="$ImgDir/$e"; // адрес

Это попало в массив.
Синтаксически всё верно в этой строке, как думаете?)
(Добавление)
armancho7777777 пишет:
По ходу какая-та строка с переменной в перемешку затисалась...

Как и говорил...


извините, но ничего не изменилось((
58. illy - 17 Октября, 2011 - 09:51:55 - перейти к сообщению
Давай архив с необходимыми файлами. Потестю у себя Улыбка
59. armancho7777777 - 17 Октября, 2011 - 09:52:07 - перейти к сообщению
illy пишет:
Давай весь код как есть сейчас.

Да, нужен весь код. По любому, какая-та синтаксическая мелочь.
(Добавление)
illy пишет:
Давай архив с необходимыми файлами. Потестю у себя

И мне)))
60. Мелкий - 17 Октября, 2011 - 09:53:54 - перейти к сообщению
armancho7777777 пишет:
А почему?

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

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

 

Powered by ExBB FM 1.0 RC1