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 :: Передача методом GET - когда в строке ссылки передаются значения переменных, а когда их имена?
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Здравствуйте все!
Не получается передача на локалхосте методом GET в строке ссылки. В одном скрипте передаются значения переменных, а в другом только их имена. Например , по ссылке:
<a href='forma.php?select&item=$x&object=$y&value=smoll' TARGET='Sets'>$folders[$j]</a>"; в одном фрейме передаются
значения и переменных и константа:
$_GET['item'] и $_GET['object'] содержат значения $x и $y и константы select и smoll и это видно в явном виде в строке ссылки при наведении курсора на ссылку.
В другом же фрейме в строке ссылки видны только константы и имена переменных $x и $y, как константы, а значения
$_GET['item'] и $_GET['object'] не определены и получить через них значения $x и $y невозможно. Константы select и smoll при этом благополучно передаются, а переменные - нет.
В чем причина такого поведения метода GET и что нужно сделать, чтобы по клику ссылки передавались значения переменных всегда, как оно и должно быть?
Спасибо.
Medallion
Отправлено: 27 Мая, 2012 - 12:13:40
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
Ссылка должна генерироваться в PHP-кодом, чтобы подставить значения переменных $x и $y
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Посмотри в сообщении, именно так и сделано. А если isset
isset($_GET['item']) && isset($_GET['object' дает отрицательный ответ, тогда что делать?
Medallion
Отправлено: 27 Мая, 2012 - 12:50:08
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
sKaa
Объясни, почему неправильно! Код работает, это упрощенная запись.
DelphinPRO
Отправлено: 27 Мая, 2012 - 13:51:20
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Medallion пишет:
Объясни, почему неправильно!
Перед использованием переменной следует проверять ее на существование. Потому что при обращении к несуществующей переменной генерируется ошибка уровня E_NOTICE
----- Чем больше узнаю, тем больше я не знаю.
sKaa
Отправлено: 27 Мая, 2012 - 14:07:21
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
DelphinPRO, нет не генерируется, если пользоваться каким-нибудь денвером и думать при этом, что ты ПРО-кодер как Данила, разумеется error_reporting(E_ALL); расставит все точки над Е....
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
sKaa, тебе терпения нехватает, написать почему, мой код плохо написан. Если пишешь, что неправильно кто-то написал код, не поленись, напиши почему?, или как-будто ты, никогда не писал "говнокод".
Я за практику, и это хорошо, когда указывают на ошибки, но плохо когда не говорят почему и как.
DelphinPRO
Отправлено: 27 Мая, 2012 - 14:25:38
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
sKaa
Денвером давно не пользовался, но насколько помню там включено отображение всех уровней ошибок.
----- Чем больше узнаю, тем больше я не знаю.
Мелкий
Отправлено: 28 Мая, 2012 - 09:59:32
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
DelphinPRO пишет:
там включено отображение всех уровней ошибок.
E_STRICT точно отключен, там же не 5.4 ещё. А на счёт E_NOTICE - не в курсе, да. Не видел вживую денвер.
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Мы ушли от темы вопроса и мой вопрос остался без ответа
Мелкий
Отправлено: 29 Мая, 2012 - 09:31:16
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Las пишет:
и мой вопрос остался без ответа
Разве? А, да, похоже на то.
0) не используйте фреймы. Как и GOTO - толк есть только если больше ничего не помогает.
1) что такое константы и что такое переменные в вашей терминологии? В терминологии GET-запроса есть параметр и значение. Констант там точно нету.
----- PostgreSQL DBA
Las
Отправлено: 29 Мая, 2012 - 10:26:44
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
А у Мелкого самый толковый совет! Вы предлагаете раскраивать страницу сайта (как видимо и все так делают) с помощью CSS и div-верстки?
Тогда ведь тоже будет уйма скриптов модулей и все проблемы обмена данными между ними и автоматического (без ссылок - зачем грузить посетителя лишними кликами) перехода из модуля в модуль.
Мелкий, я сам пришел к решению бросить этот сайт на полдороге (со слезами на глазах и задавив жабу), когда очередной target отказался работать. Не хочу больше таргетов, они то срабатывают, то нет.
Короче, начинаем с нуля.
Las
Отправлено: 04 Июня, 2012 - 15:01:19
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Мелкий пишет:
1) что такое константы и что такое переменные в вашей терминологии? В терминологии GET-запроса есть параметр и значение. Констант там точно нету.
Переменные есть в PHP. Я говорю о том, когда в массив $_GET с определенным параметром (напримен 'item') вставляется в качестве значения содержательное значение переменной $x
(например, если $x=5, то вставляется 5.
А когда в качестве значения вставвляется просто имя переменной, те собственноо $x.
ВОТ О ЧЕМ РЕЧЬ!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.