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 :: Версия для печати :: Notice: Undefined index
Форумы портала PHP.SU » PHP » Программирование на PHP » Notice: Undefined index

Страниц (1): [1]
 

1. Глайт - 03 Июня, 2008 - 23:28:55 - перейти к сообщению
Не нравится, как я собираю переменную:

CODE (text):
скопировать код в буфер обмена
  1. $im_rad_name = "image_".$im;   // Составляем имя переменной


Может, подскажете, как это этого избавиться?
2. scuter - 04 Июня, 2008 - 03:18:36 - перейти к сообщению
а что тебе тут не нравится.
3. Вездеход - 04 Июня, 2008 - 07:46:21 - перейти к сообщению
угу. что именно не нравится то?
все кул вроде...

зы. можно так:
$im_rad_name = "";
$im_rad_name .= "image_";
$im_rad_name .= $im;

=)
4. valenok - 04 Июня, 2008 - 08:18:47 - перейти к сообщению
Вездеход
мне как то знакомый показывал как вывести на php числа от одного до 10ти
получилось так:

$a=1;
echo $a;
echo "<br>";

$a=2;
echo $a;
...

..


Undefined index тносится к массивам.
Вы не ту строчку привели похоже.
5. Вездеход - 04 Июня, 2008 - 08:28:12 - перейти к сообщению
valenok пишет:
Вездеход
мне как то знакомый показывал как вывести на php числа от одного до 10ти
получилось так:

$a=1;
echo $a;
echo "<br>";

$a=2;
echo $a;
...

..


а что.. классная идея!
в таком коде и не запутаешся никогда! Улыбка Улыбка Улыбка
6. Глайт - 04 Июня, 2008 - 11:47:52 - перейти к сообщению
Приведу весь цикл:

CODE (text):
скопировать код в буфер обмена
  1. for ($im=1;$im<=7;$im++)
  2. {
  3. [b]     $im_rad_name = "image_".$im;   // Составляем имя переменной[/b]
  4.         if ($_POST[$im_rad_name] == "1") $ans[$im] = "1";
  5.         else { $ans[$im] = "0"; }
  6. }


при выполнении скрипта выводит ошибку (одну из):
Цитата:
Notice: Undefined index: image_6 in handler.php on line 39

где 39 строка выделена жирным шрифтом в коде цикла. Скорее всего, ошибка в $_POST.
7. SergeantPEPPER - 04 Июня, 2008 - 14:29:52 - перейти к сообщению
У вас нет такого элемента $_POST['image_6'] - проблема в этом, название элемента массива формируется правильно.

Посмотрите:
1) Передается ли POST-ом такой элемент в Ваш скрипт.
2) Существует ли вообще массив $_POST у Вас (если нет - выключите опцию register_globals в php.ini)
8. Глайт - 04 Июня, 2008 - 14:38:39 - перейти к сообщению
SergeantPEPPER пишет:
У вас нет такого элемента $_POST['image_6'] - проблема в этом, название элемента массива формируется правильно.

Посмотрите:
1) Передается ли POST-ом такой элемент в Ваш скрипт.
2) Существует ли вообще массив $_POST у Вас (если нет - выключите опцию register_globals в php.ini)


значит, у меня на сайте стоит голосование. После нажатия кнопки "Ответить" вышеуказанный Notice выводится для "image_...", за которые НЕ проголосовали... На варианты, за которые проголосовали не ругается...
Значит, передается через $_POST нормально.
в итоге пришлось ставить error_reporting(7).
9. valenok - 04 Июня, 2008 - 14:46:32 - перейти к сообщению
if ( isset( $_POST[$im_rad_name] )) $ans[$im] = "1";
Кроме того эта строка и есть 39ая
10. SergeantPEPPER - 04 Июня, 2008 - 14:59:25 - перейти к сообщению
2Глайт :

Просто в массив $_POST попадают только отмеченные чекбоксы.
Т.е. если если в чекбоксе на странице голосования стоит галочка, то соответствующий элемент $_POST[image_x] будет существовать, в прот. случае элемент не создается

Поэтому проверяйте лучше не на равенство, а на существование
11. scuter - 04 Июня, 2008 - 22:15:59 - перейти к сообщению
так бы сразу и сказал,
думаю так будет лучше работать,
PHP:
скопировать код в буфер обмена
  1. for ($im=1;$im<=7;$im++)
  2. {
  3.         if(isset($_POST["image_".$im]))
  4.         {
  5.                 if ($_POST["image_".$im] == "1")
  6.                 {
  7.                         $ans[$im] = "1";
  8.                 }
  9.                 else
  10.                 {
  11.                         $ans[$im] = "0";
  12.                 }
  13.         }
  14. }

 

Powered by ExBB FM 1.0 RC1