Chtml::beginform() Генерация Скрытых Полей

Зачем нужна генерация скрытых полей в Chtml::beginform() с условием


if(!strcasecmp($method,'get') && ($pos=strpos($url,'?'))!==false){...}

?

если метод гет и есть гет параметры, то создавать скрытые поля. или это баг?

Если не баг, то пожалуйста объясните логику, потому что это только мешает.

GET параметры же могут использоваться не только для форм.

Поэтому важно после отсылки формы методом GET передавать их повторно, но уже с полями из формы.

Ок, согласен, важно.

Но форма отправляется гетом и выходит, что эти поля будут дублироваться в адресной строке и размножаться в геометрической прогрессии, а толку с этого не будет потому что массив $_GET будет брать только последнее значение. Единственное что мы получаем с такого рода проверкой на рендеринг скрытых полей - засорение урл.

Логично было бы сделать проверку "если не get и есть get параметры", то рисовать скрытые поля.

В том что сейчас сделано я не вижу никакого смысла.

Как правило после успешной отправки формы используется редирект, чтобы избежать повторной ее отправки.

Поэтому никакой прогрессии быть не должно при правильном подходе.

Вы предлагаете после заполнения формы поиска делать редирект?

Но здесь редирект не поможет потому что скрытые поля создаются тогда, когда в форме указан метод get и есть get-параметры в урл по которому перешли на страницу с формой, я уже писал.

Мне не понятна логика самой проверки, почему оно рендерится если метод формы get и есть параметры, почему не post.