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 :: вопрос про разбор ссылки и if
на месте {name_car}-функция, которая возвращает имя модели.
Если такая запись $_GET['model']=='{name_car}', то работает первый иф, независимо от того, по какой ссылке был сделан клик.
Если без ковычек - второй иф,независимо от того, по какой ссылке был сделан клик.
1) Как сделать так, чтобы при нажатии на первую ссылку работал первый иф, на вторую-второй. Т.е. что сделано не так?
2)Как в проектах обрабатываются ссылки такого плана?
ведь может быть задано много параметров,и каким образом производится проверка всех составляющих ссылки?
Например, как вот обработать такое. Ведь не ифами же.
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2009
Помог: 1 раз(а)
Вопрос не очень ясен. Но отвечу как понял.
1) Как сделать так, чтобы при нажатии на первую ссылку работал первый иф, на вторую-второй. Т.е. что сделано не так?
Ответ: Первый IF будет работать только в том случае если верно условие $_GET['id']=='car', второй только в случае если верны оба усовия $_GET['id']=='car' и $_GET['model']=={name_car} (кстати очень странная запись, зачем тут фигурные скобки?). Логично, что при нажатии на первую ссылку /index.php?id=car условие $_GET['model']=={name_car} не будет соблюдено, так как переменная $_GET['model'] вообще не объявлена. Но зато при нажатии на вторую ссылку /index.php?id=car&model={name_car} будут верны оба условия, требуемые второму IF'у , но условия также верно и для первого, потому что переменная $_GET['id'] равна 'car'.
Я не знаю конечной цели, но я бы такой пример записал, так, чтобы два раза не проверять переменную $_GET['id'] и добиться такого же результата.:
2)Как в проектах обрабатываются ссылки такого плана?
ведь может быть задано много параметров,и каким образом производится проверка всех составляющих ссылки?
Например, как вот обработать такое. Ведь не ифами же.
Вобщем-то именно ифами, проще всего можно еще например switch, но разница не значительно.
2) А такие запросы вообще обычно через if проверяют на валидность, а обрабатывает СУБД.
----- PostgreSQL DBA
genialno
Отправлено: 25 Октября, 2009 - 22:42:35
Новичок
Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
keysi_спасибо, но не получилось таким способом.
Мелкий спасибо! отлично разобрался. Все красиво.
А можно про второй вопрос подробнее.
Т.е.
либо ссылочек каких на эту тему, либо книжку.
Или сами поведайте.
keysi_
Отправлено: 26 Октября, 2009 - 00:16:53
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2009
Помог: 1 раз(а)
Как ни странно, но лучшая книжка на эту тему - это стандартный справочник по PHP и конкретная задача. Еще не плохо под рукой иметь какой нибудь сборник простых готовых скриптов, на первое время, чтобы контролировать себя, посмотрев как это делают другие.
Из книжек, есть неплохая книга - Лаура Томпсон и Люк Веллинг PHP и MySQL. Но все же самая лучшее - это собственный опыт и, повторюсь, справочник под рукой.
JustUserR
Отправлено: 26 Октября, 2009 - 10:52:00
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
genialno Бесплатные книги по программированию - см подпись
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
genialno
Отправлено: 26 Октября, 2009 - 22:09:41
Новичок
Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
JustUserR по моему, ответ не по теме. Я не прошу сайт с книгами для скачивания.
Это как попросить совета по выбору машины, а дадут ссылку на автокаталог.
Что-то конкретное хотелось бы. По ответу на второй вопрос. Ссылочки, как сами в своих проектах реализовываете. Вот.
JustUserR
Отправлено: 27 Октября, 2009 - 18:00:47
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
genialno Вопервых выше зашел разговор о книгах и поэтому я счел нужным указать где из можно раздобыть (Вы думаете я этот сайт в подпись добавил ради рекламы - нет! Просто многие интересовали где можно взять бесплатно книги)
Вовторых зачем описывать встроенные средства базы данных здесь если все это уже было сто раз написано авторами - хотя бы вот это http://progbook[dot]ru/2008/08/16/ph[dot][dot][dot]vatelja-tim[dot]html
Да и что касается второго вопроса в общем то вы можете делать широкий набор условий в where и где надо использовать вложенные запросы чтобы извлечь одни данные по другим
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
genialno
Отправлено: 08 Ноября, 2009 - 01:28:35
Новичок
Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
Вот, допустим есть на сайте ссылки.
4-я -это расширение 3-й, 3-я - 2-й, 2-я -1-й.
Мне непонятно, как делать разбор ссылок. Выше был дан совет, но я вот и пытался так делать. Если пару параметров, то можно, но если как в 4-й ссылке, их много, то через isset делать- убийство. Или я тогда чего-то не понял.
Вот делал разбор ссылок вышенаписанных(без 4 ссылки). Ну ещё как-то сделал.
Но каким образом обрабатывать большие, с многими параметраси ссылки, т.е постепенно нарастающие (1-2-3-4).
Предложите вариант решения.
Покинул форум
Сообщений всего: 78
Дата рег-ции: Нояб. 2009
Помог: 0 раз(а)
count ($_GET) вернёт вам количество переданных аргументов, а дальше как ваша фантазия вам подскажет.
genialno
Отправлено: 08 Ноября, 2009 - 15:42:58
Новичок
Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
JROUD пишет:
count ($_GET) вернёт вам количество переданных аргументов, а дальше как ваша фантазия вам подскажет.
Пока что не подсказывает. Пусть я знаю, количество переданных аргументов. Может, оно и поможет в некторох случаях. ) Вроде как понимаю, как применить.
Но, как вот в нижеописанных случаях(или как в моём посте выше ссылки) делать разбивку.
В нижних ссылках число аргументов одинаково, и count уже не поможет.
Покинул форум
Сообщений всего: 78
Дата рег-ции: Нояб. 2009
Помог: 0 раз(а)
А ваша программа разве сама себе придумывает переменные? Если нет, то какая проблема учесть наличие или отсутствие их значений, и зачем тогда что-то считать?
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
А с чего вы взяличто кто-то так куда-то передает параметры, в каких таких проектах ?
И проверять стоит с большего к меньшему.
if(a && b && c)
elseif( a && b )
elseif( a )
Добавь 15ый параметр mode и добавь в код switch в зависимости от mode вызывающий ту или иную функцию.
Не существует такого справочника и статей о том как решить единичную проблему возникающую только у тебя. Такие проблемы решаются на примере конкретной задачи.
----- Truly yours, Sasha.
JustUserR
Отправлено: 09 Ноября, 2009 - 10:42:17
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
genialno Можно же обычным циклом foreach пройтись про массиву $_REQUEST и получить все переданные переменные - а дальше с ними уже что угодно делать
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.