Скрытый пост ввода или получить переменную? - PullRequest
1 голос
/ 22 февраля 2010

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

  1. поместите blog_post_id как скрытое поле формы в форме комментария, или вы бы
  2. установить действие формы на post_comment?blog_post_id=<id>, а затем взять его вместо переменной GET?

Почему?


Мои 2 цента:

Если вы поместите его в POST, тогда все ваши переменные будут находиться в согласованном месте, когда вы пытаетесь обработать форму. Тем не менее, я обнаружил, что часто в любом случае blog_post_id будет присутствовать в URL, поэтому вы отправляете немного лишних ненужных данных (и вам нужно выполнить печать скрытого поля).

Ответы [ 2 ]

3 голосов
/ 22 февраля 2010

Технически между этими двумя вариантами нет большой разницы. Лично я бы пошел со скрытым POST, потому что URL выглядит чище, и вам не придется беспокоиться о том, что URL экранирует значение *.

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


Re Edit:

Однако я обнаружил, что часто в любом случае blog_post_id будет в URL-адресе ...

Это полностью зависит от вас. Если вы хотите это там, вы можете поместить это туда, но вам это не нужно.

... и придется пройти через работу печати скрытого поля.

Опять же, на самом деле нет большой разницы ...

<form action="/post_comment?post_id=<?php echo $id; ?>">

против

<form action="/post_comment">
<input type="hidden" name="post_id" value="<?php echo $id; ?>" />

Скрытый ввод обеспечивает лучшее разделение проблем (в микромасштабе) и ИМХО немного более читабелен, в то время как переменная GET на одну строку меньше кода ... Выберите. :)

0 голосов
/ 22 февраля 2010

Я выберу первый вариант , который кажется лучше. Если вы используете второй вариант, тот, что с GET, я позволяю пользователям вмешиваться в мою форму комментария, которая плоха и может иногда создавать проблемы безопасности, если вы не обращаете на это внимания.

...