КакеФФП:Запретить ПОЛУЧЕНИЕ полей формы в URL
-
21-09-2019 - |
Вопрос
У меня есть форма поиска CakePHP, которая имеет 'type'=>'get'
.По сути, одним из элементов формы является кнопка отправки типа image.Когда форма публикуется, в URL-адресе я всегда получаю эти координаты x & y кнопки отправки изображения:
http://site.com/controller/action?x=22 иy=36&запрос= привет
Есть ли какой-нибудь способ, которым я могу предотвратить отображение координат в URL-адресе?Причина в том, что кто-то другой мог использовать тот же URL-адрес для выполнения того же поиска, без этого неинтуитивного материала в ссылке.
Спасибо!
Решение
Вы могли бы использовать некоторый javascript для кнопки:
document.getElementById('myImageButton').onclick = function() {
this.form.submit();
return false;
};
В качестве альтернативы, в вашем контроллере в beforeFilter
таким образом, вы могли бы проверить наличие нежелательных переменных, удалить их и перенаправить на хороший URL.Однако это означает, что будет сделано 2 HTTP-запроса.
Другие советы
Звучит так, как будто вы хотите сделать Опубликовать / Перенаправить / Получить.
Вот два примера выполнения этого в CakePHP:
Преимущества перенаправления POST
к a GET
запрос - это:
- Пользователи не получают сообщение "Вы хотите повторно отправить?" диалоговое окно, если они обновляют
- Результирующую страницу / запрос можно добавить в закладки
- Вы можете использовать встроенную SEF-маршрутизацию CakePHP, поэтому вместо URL-адресов с
/search?q=contact
вы можете получить/search/contact
Вместо того, чтобы использовать submit
вспомогательная функция, использование button
функция и установите тип кнопки для отправки.
echo $this->Form->**button**($this->Html->image('header_search_icon.png'), array(**'type'=>'submit'**));