Forum. MyNuke.ru
Forum. MyNuke.ruСообщения за сегодняПерсональные сообщения

Навигация  
Вернуться   Forum. MyNuke.ru > Учимся > PHP&MySQL
Ник
Пароль
Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Alie вне форума      Старый Обработка переменной в switch case #1  
Alie
Участник+
Регистрация: 20.03.2006
Сообщения: 153


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Alie Найти все сообщения от Alie Добавить Alie в список друзей  
16.10.2011, 04:07

Дано: модуль в phpNuke, использующий switch для изменения контента на странице.
Код:
echo "<a href=\"modules.php?name=$module_name\">main</a> <a href=\"modules.php?name=$module_name&i=more\">more</a>"; switch($i) { default: main(); break ; case "more": more(); break ; } function main() { echo "MAIN CONTENT"; } function more() { echo "MORE CONTENT"; }

Вопрос: каким образом происходит присвоение значения переменной $i при переходе по ссылке (например кликая на more открывается more();)?

Пробовала написать на голом PHP - переход по ссылке не срабатывает (страница не найдена), и это несмотря на то, что по ссылке явно присваивается значение переменной $i через _GET.
Что я упускаю?


P.S. Разобралась - перепутала операторы. Тему можно закрывать/удалять.

Последний раз редактировалось Alie, 16.10.2011 в 04:13.

Soniks вне форума      Старый #2  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
16.10.2011, 13:32

Если в php включена опция register_globals то переменные из запросов GET и POST при начале работы обрабтчика php становятся доступными в коде. Вот не плохо разжеванная статья.
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Alie вне форума      Старый #3  
Alie
Участник+
Регистрация: 20.03.2006
Сообщения: 153


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Alie Найти все сообщения от Alie Добавить Alie в список друзей  
18.10.2011, 16:25

Спасибо за статью. Возник ещё один вопрос по switch. Если применяю switch внутри case другого switch:
Код:
switch($go) { default: main(); break; case"firm": firm(); break; } function firm() { switch($more) { default: info(); break; case "more" more(); break; } }

Почему не работает следующая ссылка на case "more" из index.php?go=firm:
Код:
<a href=\"index.php?go=firm&more=more\">GO</a>

Опять что-то путаю с переменными?

Soniks вне форума      Старый #4  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
19.10.2011, 23:13

В функции firm() необходимо переменную $more объявить как глобальную

PHP код:
 function firm()
   {
global 
$more
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Alie вне форума      Старый #5  
Alie
Участник+
Регистрация: 20.03.2006
Сообщения: 153


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Alie Найти все сообщения от Alie Добавить Alie в список друзей  
20.10.2011, 13:51

Sonics, спасибо!

Alie вне форума      Старый #6  
Alie
Участник+
Регистрация: 20.03.2006
Сообщения: 153


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Alie Найти все сообщения от Alie Добавить Alie в список друзей  
25.10.2011, 02:41

В итоге переделала:
Код:
switch($go) { default: main(); break; case"firm": firm($more); break; } function firm($more) { switch($more) { default: info(); break; case "more" more(); break; } }

Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +4, время: 18:45.


На Верх
Рейтинг@Mail.ru