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 :: Notice: Undefined index

 PHP.SU

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


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

> Без описания
RickMan
Отправлено: 25 Мая, 2012 - 18:29:16
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


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




У меня выдает вот такую ошибку:
Notice: Undefined index: ch in бла/бла/бла/buttons.php on line 9

Что она означает я знаю, но не могу понять в чем проблема...
Файлы большие поэтому буду кидать кусками....Грубо говоря это онлайн игра, и тут такое дело...Есть 1 фрэймсет , который разные страницы выстраивает, и выходит игровой экран...
И в этом фреймсете 1 скрипт вызывается дважды...Но при этом скрипт нужен по разным целям...

Вырезка из фрейсета:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <frame src="buttons.php?ch='+rnd+'" name="chat" target="_top"   scrolling=YES >
  3. <frame src="buttons.php?'+rnd+'"      name="bottom" scrolling="no" noresize>


Получается 1 раз скрипт вызовется с параметром CH а другой раз нет...

Ну вот и в самом скрипте buttons.php сделано так:

PHP:
скопировать код в буфер обмена
  1. if ($_GET['ch'] != null){
  2.     скрипт первый
  3. }else{
  4.     скрипт второй
  5. }


Собсна говоря 9 строка, на которую ругается это строка: if ($_GET['ch'] != null){

В чем может быть проблма? если ch всетаки существует...и как избавиться от ошибки? ведь убрать сам код и проверку я не могу...будет уже не то...
 
 Top
tato
Отправлено: 25 Мая, 2012 - 18:32:56
Post Id



Посетитель


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


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




В массиве $_GET нет записи с индексом ch

перепишите так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( isset( $_GET['ch'] ) )
  3. {
  4.     // скрипт первый
  5. }
  6. else
  7. {
  8.     // скрипт второй
  9. }

(Отредактировано автором: 25 Мая, 2012 - 18:33:58)



-----
просто ?: сложно
 
 Top
RickMan
Отправлено: 25 Мая, 2012 - 18:43:11
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


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




tato пишет:
В массиве $_GET нет записи с индексом ch

перепишите так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( isset( $_GET['ch'] ) )
  3. {
  4.     // скрипт первый
  5. }
  6. else
  7. {
  8.     // скрипт второй
  9. }


Поставил, сработало, спасибо) идея понравилось очень)
(Добавление)
и вопрос на засыпку...тоесть если встречаю подобные строки:

If (Get['что-то']){

ну или подобное но на Post то сразу ставить isset ? потому что у меня подобных ошибок море просто...
 
 Top
Bio man
Отправлено: 25 Мая, 2012 - 19:08:27
Post Id


Постоянный участник


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


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




RickMan пишет:
сразу ставить isset
Нет. Зависит от задачи. Например, если нужно проверить на существование то isset, если на пустоту или другое ложное значение (в гет и пост изначально только строки) то

(Отредактировано автором: 25 Мая, 2012 - 19:08:56)

 
 Top
OrmaJever Модератор
Отправлено: 25 Мая, 2012 - 19:50:14
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Bio man пишет:
если на пустоту

empty()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
RickMan
Отправлено: 25 Мая, 2012 - 19:52:02
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


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




А если такой вариант:

If ($_GET['do']=="5"){
}

А гета нету вообще...ну тут isset точно не пойдет...а ошибку тварь выдает...
 
 Top
OrmaJever Модератор
Отправлено: 25 Мая, 2012 - 19:55:17
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




RickMan пишет:
ну тут isset точно не пойдет

Почему это?
PHP:
скопировать код в буфер обмена
  1. If (isset($_GET['do']) && $_GET['do'] == 5){


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Bio man
Отправлено: 25 Мая, 2012 - 21:47:27
Post Id


Постоянный участник


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


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




OrmaJever пишет:
Bio man пишет:
если на пустоту

empty()
А какая разница? Если переменная не установлена и проверить на пустоту то будет нотис
Что бы избежать нотис надо проверить сперва на существование Но гет и пост всегда строки или массивы, и если переменная пустая (или пустой массив) то по правилу лжи расценивается как false, так что нет необходимости проверять на empty

(Отредактировано автором: 25 Мая, 2012 - 21:48:48)

 
 Top
OrmaJever Модератор
Отправлено: 25 Мая, 2012 - 22:07:34
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Bio man пишет:
Что бы избежать нотис надо проверить сперва на существование

даа? Я специально выделил это как функцию что бы на неё можно было нажать и глянуть
Цитата:
Это противоположно (boolean) var, за исключением того, что никакого предупреждения не генерируется, если переменная не установлена. См. конвертация в boolean.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Bio man
Отправлено: 25 Мая, 2012 - 22:58:59
Post Id


Постоянный участник


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


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




OrmaJever, спасибо большое. Ты меня спас от лишней головной боли.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB