2010-02-22 2 views
1

Предположим, вы создаете приложение для блога, и вы пытаетесь решить, как создать форму комментария для определенного сообщения. Был бы выСкрытый ввод сообщения или переменная?

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

Почему?


Мои 2 цента:

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

ответ

3

Технически на самом деле между этими двумя вариантами не существует большой разницы. Лично я бы пошел со скрытым 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; ?>" /> 

Скрытое вход обеспечивает лучшее разделение задач (на микро- -scale) и IMHO немного читаем, а переменная GET - это одна строка меньше кода ... Возьмите свой выбор. :)

+0

Кроме того, в большинстве случаев он будет отображаться в URL-адресе, потому что вы обычно хотите перенаправить обратно на этот пост в блоге, чтобы вы могли видеть свой комментарий. – mpen

+0

@Mark Перенаправление обратно в сообщение не означает, что вы должны поместить что-либо в URL-адрес '/ post_comment'. – deceze

+0

Ну ... нет, не обязательно. Я думаю, вы могли бы забить это сообщение тоже? Но когда вы хотите * просматривать * страницу, обычно имеет смысл иметь ее в URL-адресе, нет? – mpen

-2

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

+1

Скрытое поле в форме комментария также может быть подделано. «Безопасность» не является проблемой, поскольку это решение принято. –

+0

Согласен с Anon. Независимо от того, что вы позволяете отправлять со стороны пользователя, на самом деле может быть изменена пользователем. по той же причине DRM не работает до сих пор ... – Alfabravo

+0

@ Анон: Сначала я сказал: «Я выберу первый вариант, который кажется лучше». скрытый подход лучше, чем GET, но он тоже не идеален, я никогда не говорил об этом, но из-за того, что у меня остались два варианта, мне пришлось выбрать один вариант. Надеюсь, вы это понимаете. – Sarfraz

Смежные вопросы