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

 PHP.SU

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


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

> Описание: Как реализовать?
otus7
Отправлено: 10 Сентября, 2014 - 12:02:05
Post Id


Новичок


Покинул форум
Сообщений всего: 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

Ну и другие комбинации.

Заранее спасибо!
 
 Top
Edwvee
Отправлено: 10 Сентября, 2014 - 12:15:19
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


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




Сделай кнопку input типа submit. На странице, на которую приходит форма смотри какой чекбокс нажат(хотя может радиобатонны имелись в виду?) и редиректь на нужную страницу.
 
 Top
otus7
Отправлено: 10 Сентября, 2014 - 12:41:15
Post Id


Новичок


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


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

[+]


Edwvee пишет:
Сделай кнопку input типа submit. На странице, на которую приходит форма смотри какой чекбокс нажат(хотя может радиобатонны имелись в виду?) и редиректь на нужную страницу.


именно чекбоксы, их не три, а много на самом деле. От их комбинации выходят разные ссылки.

Хочу похожее реализовать http://www[dot]visited[dot]ru/

Я пока не понял как сделать так чтобы submit оптравлял на нужную страницу, в зависимости от комбинации чекбоксов, через Get нужно отправлять комбинацию ЧекБоксов

Если подскажете код, буду рад.

(Отредактировано автором: 10 Сентября, 2014 - 12:47:04)

 
 Top
Edwvee
Отправлено: 10 Сентября, 2014 - 12:55:08
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


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




На странице, принимающей форму, обрабатывай чекбоксы. Допустим результат у тебя будет в переменной $page. Дальше
header('Location: ' . $page);
Только перед заголовками не должно быть никакого вывода. Как обрабатывать чек боксы с формы, если не знаешь, сам найдешь. Для понимания можно сделать
var_dump($_REQUEST);
и посмотреть, что приходит.
 
 Top
otus7
Отправлено: 10 Сентября, 2014 - 13:11:29
Post Id


Новичок


Покинул форум
Сообщений всего: 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 у меня ссылка будет очень длинная, бесконечная и некрасивая

(Отредактировано автором: 10 Сентября, 2014 - 13:13:23)

 
 Top
Edwvee
Отправлено: 10 Сентября, 2014 - 13:23:10
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


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




Попытаюсь еще раз объяснить:
1. Пользователь отмечает твои чекбоксы.
2. Нажимает submit.
3. Форма приходит допустим на страницу /checkMyCheckboxes.php.
4. В зависимости от чекбоксов она редиректит на нужную страницу. Допустим это будет /map.php?vis=Vis.

В чем проблема?
Либо обрабатывай при отправке форму через js и делай редирект уже на клиенте.
 
 Top
otus7
Отправлено: 10 Сентября, 2014 - 13:24:50
Post Id


Новичок


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


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

[+]


Edwvee пишет:
Попытаюсь еще раз объяснить:
1. Пользователь отмечает твои чекбоксы.
2. Нажимает submit.
3. Форма приходит допустим на страницу /checkMyCheckboxes.php.
4. В зависимости от чекбоксов она редиректит на нужную страницу. Допустим это будет /map.php?vis=Vis.

В чем проблема?
Либо обрабатывай при отправке форму через js и делай редирект уже на клиенте.


Спасибо. В скриптах не силен, была мысль про то чтобы чекбоксы отправляли на отдельную форму, а потом она ссылку генерировала. Так и попробую сделать. Спасибо.
 
 Top
dcc0
Отправлено: 10 Сентября, 2014 - 13:49:13
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




По ссылке есть пример:
http://dnzl[dot]ru/view_post.php?id=182
Параграф "группа флажков":
Обработчик сделан так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $aDoor = $_POST['formDoor'];
  3.   if(empty($aDoor))
  4.   {
  5.     echo("Вы ничего не выбрали.");
  6.   }
  7.   else
  8.   {
  9.     $N = count($aDoor);
  10.     echo("Вы выбрали $N здание(й): ");
  11.     for($i=0; $i < $N; $i++)
  12.     {
  13.       echo($aDoor[$i] . " ");
  14.     }
  15.   }
  16. ?>  

Автор предлагает считать кол-во флажков. Можно добавить в ссылку общее число и зашифровать md5
Т.е. мойсайт.ru/map.php?vis=****
Можно получить
мойсайт.ru/map.php?a4114a2de1374cea13be67ed17dfc567=4
При нажатии расшифровывать.
И будет одна длина.
Можно ничего не считать, просто зашифровать/расшифровать
мойсайт.ru/map.php?vis=4114a2de1374cea13be67ed17dfc567
Хотя, конечно, коллизии никто не отменял.

(Отредактировано автором: 10 Сентября, 2014 - 14:07:44)



-----
Март 2021. Бросил программирование
 
 Top
otus7
Отправлено: 10 Сентября, 2014 - 14:07:04
Post Id


Новичок


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


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

[+]


dcc0 пишет:
По ссылке есть пример:
http://dnzl[dot]ru/view_post.php?id=182
Параграф "группа флажков":
Обработчик сделан так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $aDoor = $_POST['formDoor'];
  3.   if(empty($aDoor))
  4.   {
  5.     echo("Вы ничего не выбрали.");
  6.   }
  7.   else
  8.   {
  9.     $N = count($aDoor);
  10.     echo("Вы выбрали $N здание(й): ");
  11.     for($i=0; $i < $N; $i++)
  12.     {
  13.       echo($aDoor[$i] . " ");
  14.     }
  15.   }
  16. ?>  

Автор предлагает считать кол-во флажков. Можно добавить в ссылку общее число и зашифровать md5
Т.е. мойсайт.ru/map.php?vis=****
Можно получить
мойсайт.ru/map.php?a4114a2de1374cea13be67ed17dfc567=4
При нажатии расшифровывать.
Ну ли ничего не считать, просто зашифровать/расшифровать
мойсайт.ru/map.php?vis=4114a2de1374cea13be67ed17dfc567
Хотя, конечно, коллизии никто не отменял.


Спасибо. Почитаю Улыбка
 
 Top
dcc0
Отправлено: 10 Сентября, 2014 - 14:13:56
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Т.е. сводится к: зашифровать часть get при получении, при отправке/нажатии расшифровать
и длина будет всегда одна.
Вернее сопоставить , а не расшифровть Улыбка)))

Хотя получается, надо куда-то заносить (бд) все комбинации часть гет запрос => хеш
Хм
(Добавление)
Т.е. тогда так. (нижеследующее только рассуждение, может оказаться неверным):
1. Пользователь выбирает города, жмет кнопку.
2. Сочетание заносится в базу в явном виде и через хеширование.
3. Получает ссылку с хешом.

4. Другой пользователь нажимает на ссылку с хешем
5. Попадает на обработчик
6. Обработчик обращается к базе, сравнивает хеш с тем, что ему соответствует
7. Вытаскивает ссылку, редирект.
Но вопрос - что остается в адресной строке.
Длинная ссылка?!


Кстати, на том сайте такого нет, просто короткие имена переменных, если выбрать все ссылка, будет большой.

Мда, как уже сказали выше, обработчик с редиректом в другой файл.
Для хеш придется заиметь базу. Сама ссылка будет не очень длинной, но в адресной строке все равно будет много букв. Улыбка

(Отредактировано автором: 11 Сентября, 2014 - 00:29:39)



-----
Март 2021. Бросил программирование
 
 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