Добавление параметров GET к URL из действия <form> - PullRequest
1 голос
/ 12 декабря 2011

Скажем, я сейчас нахожусь на index.php или index.php? P = в моей текущей веб-сборке.

Я пытаюсь создать форму поиска, которая будет отображаться на большинстве страниц, но я хочу, чтобы действие формы перешло на http://mywebsiteurl.com/?p=search&q=GETDATA,, поскольку подкачка моего веб-сайта зависит от данных, передаваемых атрибуту 'p'.

Как добавить параметр поиска в URL статическим способом после отправки?

Ответы [ 3 ]

1 голос
/ 12 декабря 2011

Вы можете использовать скрытое поле в своей форме, чтобы сохранить значение параметра p:

<input type="hidden" 
       name="p" 
       value="<?= htmlentities($_GET['p'], ENT_QUOTES) ?>" />
1 голос
/ 12 декабря 2011

Возможно что-то вроде этого:

  <form method="get" action="index.php">
     <input type="hidden" name="p" value="search" />
     <input type="text" name="search" value="" />
     <input type="submit" value="search" />
  </form>
1 голос
/ 12 декабря 2011

Вы должны поместить значение параметра p в скрытое поле формы внутри формы поиска; что-то вроде:

<input type="hidden"
    name="p"
    value="<?php echo(htmlspecialchars($_REQUEST["p"])); ?>" />

Не стоит помещать параметр в параметр действия формы; почтовые запросы обрабатываются иначе, чем запросы GET, значения в запросе POST не добавляются в URL с помощью? и & как с GET; это означает, что вы на самом деле не получите параметр p в сценарии, обрабатывающий запрос POST из формы ...

Также старайтесь не показывать параметр запроса неотраженным (отсюда htmlspecialchars, спасибо за подсказку!), Поскольку злонамеренные клиенты могут попытаться внедрить код на вашу страницу ( HTML-инъекция / XSS ).

...