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 :: Памагите. Я новичек в PHP
Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2014
Помог: 0 раз(а)
[+]
Имеется форма
чекбокс1
чекбокс2
чекбокс3
Кнопка
Как сделать так чтобы при нажатии на кнопку (если выбраны все чекбоксы) открывалась страничка вида мойсайт.ru/index.php?vis=123
если чекбоксы 2 и 3, то мойсайт.ru/index.php?vis=23
если чекбоксы 1 и 3, то мойсайт.ru/index.php?vis=13
Ну и другие комбинации.
Заранее спасибо!
Edwvee
Отправлено: 10 Сентября, 2014 - 12:15:19
Частый гость
Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013
Помог: 1 раз(а)
Сделай кнопку input типа submit. На странице, на которую приходит форма смотри какой чекбокс нажат(хотя может радиобатонны имелись в виду?) и редиректь на нужную страницу.
otus7
Отправлено: 10 Сентября, 2014 - 12:41:15
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2014
Помог: 0 раз(а)
[+]
Edwvee пишет:
Сделай кнопку input типа submit. На странице, на которую приходит форма смотри какой чекбокс нажат(хотя может радиобатонны имелись в виду?) и редиректь на нужную страницу.
именно чекбоксы, их не три, а много на самом деле. От их комбинации выходят разные ссылки.
Я пока не понял как сделать так чтобы submit оптравлял на нужную страницу, в зависимости от комбинации чекбоксов, через Get нужно отправлять комбинацию ЧекБоксов
Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013
Помог: 1 раз(а)
На странице, принимающей форму, обрабатывай чекбоксы. Допустим результат у тебя будет в переменной $page. Дальше
header('Location: ' . $page);
Только перед заголовками не должно быть никакого вывода. Как обрабатывать чек боксы с формы, если не знаешь, сам найдешь. Для понимания можно сделать
var_dump($_REQUEST);
и посмотреть, что приходит.
otus7
Отправлено: 10 Сентября, 2014 - 13:11:29
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2014
Помог: 0 раз(а)
[+]
Edwvee пишет:
На странице, принимающей форму, обрабатывай чекбоксы. Допустим результат у тебя будет в переменной $page. Дальше
header('Location: ' . $page);
Только перед заголовками не должно быть никакого вывода. Как обрабатывать чек боксы с формы, если не знаешь, сам найдешь. Для понимания можно сделать
var_dump($_REQUEST);
и посмотреть, что приходит.
Объясню в кратце. Пользователь отмечает чекбоксы где он был.
Допустим он отметил первый чебокс (Москва), второй пропустил(Пермь), третий отметил(Владивосток) и нажимает на кнопку "получить мою карту" и он получает для себя постоянную ссылку вида мойсайт.ru/map.php?vis=MwVl пользователь в дальнейшем может эту ссылку вставлять в подписи на форуме, использовать на разных других сайтах, по ней у него выходит картинка с картой, где флажками отмечены его города.
Форма map которая видит что через Гет передаются Mw и Vl понимает что надо вывести карту с отмеченными Москвой и Владивостоком. Саму форму map я реализовал и она показывает карту с городами в зависимости от того какие комбинации букв ей через GET передают.
Мне осталось реализовать форму которая бы генерировала эту ссылку мойсайт.ru/map.php?vis=**** в зависимости от того какие чекбоксы пользователь выберет.
Если я буду просто состояние ЧекБоксов передавать через GET у меня ссылка будет очень длинная, бесконечная и некрасивая
Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013
Помог: 1 раз(а)
Попытаюсь еще раз объяснить:
1. Пользователь отмечает твои чекбоксы.
2. Нажимает submit.
3. Форма приходит допустим на страницу /checkMyCheckboxes.php.
4. В зависимости от чекбоксов она редиректит на нужную страницу. Допустим это будет /map.php?vis=Vis.
В чем проблема?
Либо обрабатывай при отправке форму через js и делай редирект уже на клиенте.
otus7
Отправлено: 10 Сентября, 2014 - 13:24:50
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2014
Помог: 0 раз(а)
[+]
Edwvee пишет:
Попытаюсь еще раз объяснить:
1. Пользователь отмечает твои чекбоксы.
2. Нажимает submit.
3. Форма приходит допустим на страницу /checkMyCheckboxes.php.
4. В зависимости от чекбоксов она редиректит на нужную страницу. Допустим это будет /map.php?vis=Vis.
В чем проблема?
Либо обрабатывай при отправке форму через js и делай редирект уже на клиенте.
Спасибо. В скриптах не силен, была мысль про то чтобы чекбоксы отправляли на отдельную форму, а потом она ссылку генерировала. Так и попробую сделать. Спасибо.
dcc0
Отправлено: 10 Сентября, 2014 - 13:49:13
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Автор предлагает считать кол-во флажков. Можно добавить в ссылку общее число и зашифровать md5
Т.е. мойсайт.ru/map.php?vis=****
Можно получить
мойсайт.ru/map.php?a4114a2de1374cea13be67ed17dfc567=4
При нажатии расшифровывать.
И будет одна длина.
Можно ничего не считать, просто зашифровать/расшифровать
мойсайт.ru/map.php?vis=4114a2de1374cea13be67ed17dfc567
Хотя, конечно, коллизии никто не отменял.
Автор предлагает считать кол-во флажков. Можно добавить в ссылку общее число и зашифровать md5
Т.е. мойсайт.ru/map.php?vis=****
Можно получить
мойсайт.ru/map.php?a4114a2de1374cea13be67ed17dfc567=4
При нажатии расшифровывать.
Ну ли ничего не считать, просто зашифровать/расшифровать
мойсайт.ru/map.php?vis=4114a2de1374cea13be67ed17dfc567
Хотя, конечно, коллизии никто не отменял.
Спасибо. Почитаю
dcc0
Отправлено: 10 Сентября, 2014 - 14:13:56
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Т.е. сводится к: зашифровать часть get при получении, при отправке/нажатии расшифровать
и длина будет всегда одна.
Вернее сопоставить , а не расшифровть )))
Хотя получается, надо куда-то заносить (бд) все комбинации часть гет запрос => хеш
(Добавление)
Т.е. тогда так. (нижеследующее только рассуждение, может оказаться неверным):
1. Пользователь выбирает города, жмет кнопку.
2. Сочетание заносится в базу в явном виде и через хеширование.
3. Получает ссылку с хешом.
4. Другой пользователь нажимает на ссылку с хешем
5. Попадает на обработчик
6. Обработчик обращается к базе, сравнивает хеш с тем, что ему соответствует
7. Вытаскивает ссылку, редирект.
Но вопрос - что остается в адресной строке.
Длинная ссылка?!
Кстати, на том сайте такого нет, просто короткие имена переменных, если выбрать все ссылка, будет большой.
Мда, как уже сказали выше, обработчик с редиректом в другой файл.
Для хеш придется заиметь базу. Сама ссылка будет не очень длинной, но в адресной строке все равно будет много букв.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.