Какой смысл иметь скрытый ввод в HTML? Что общего для этого?

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

Есть причины для этого, но я просто не знаю их.

Ответы

Ответ 1

Они используются для передачи данных, которые понадобятся при отправке формы. Один из наиболее распространенных случаев - это форма, позволяющая пользователям редактировать некоторые существующие записи. Вам нужно будет знать, какую запись они редактируют, чтобы вы могли обновить правильную строку в базе данных при отправке формы. Пользователю не нужно редактировать (или даже знать) идентификатор записи, поэтому скрытое поле здесь хорошо работает.

Другие опции

Параметры URL: Это также можно было бы сделать, построив параметры в URL-адрес, на который отправляется форма:

<form action="save.php?entry_id=1234">

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

Переменные сеанса. При загрузке страницы редактирования вы сохраняете идентификатор записи в переменной сеанса, а затем извлекаете ее на странице, которая сохраняет изменения. Это намного легче испортить; настройка и обслуживание сеансов может потребовать добавления кода в нескольких разных местах, а затем их сеанс может истечь между загрузкой и сохранением, и вы должны убедиться, что он работает, если у них открыто несколько окон или вкладок, и вы должны убедиться, что это не делает странных вещей, когда они ударяют назад/вперед. Из-за всех этих потенциальных ошибок это не отличный способ решить эту проблему - передача идентификатора с передаваемыми данными намного более надежна.

Cookies. На многих языках/фреймворках сеансы отслеживаются с помощью файлов cookie, поэтому они в основном являются одним и тем же решением. Ловушки такие же, как и для переменных сеанса, даже если сеансы отслеживаются другими методами.

Ответ 2

Он отправляет дополнительную информацию, которую пользователь не знает или не интересуется (например, токен безопасности), так что, если форма отправляется дважды, вы можете сравнить токены и отклонить/принять это представление.

Ответ 3

Скрытый ввод предназначен, когда вы хотите отправить информацию обратно в сообщение, если пользователь не видит данные в качестве элемента пользовательского интерфейса.

Сеть является апатридом - эрго, когда приходит POST, у вас есть только пара фрагментов информации, чтобы определить, что вам нужно делать; Session, Url, некоторые ServerVariables и данные формы, переданные вам.

Если фрагмент данных является временным, что не полезно для ввода сессии, иногда разумно вводить в скрытое поле.

Они также могут быть полезны для хранения данных на стороне клиента для использования в богатых интернет-приложениях (таких как идентификатор продукта, который легко доступен для использования в вызовах ajax).

Ответ 4

Не использование скрытых входов означает, что сервер должен отслеживать эти значения. Это требует от сервера сохранения состояния, которое в противном случае могло бы быть встроено в запрос (форму). Это может сделать страницу RESTless (не RESTful), т.е. Нарушить самодостаточность HTTP-запроса. Если вы отслеживали скрытые значения на сервере, вам, по крайней мере, нужно было бы вставить уникальный токен в каждую форму, чтобы иметь дело с несколькими уникальными представлениями той же формы. Самый чистый способ вставить такой токен - это барабан, через скрытый ввод.:)

Ответ 5

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

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

Ответ 6

потому что у вас есть цикл php while с большим количеством разных объектов, которые вы не можете получить позже, и вы просто сохраняете их, сохраняя их в скрытом вводе... также мне нравится, чтобы они были проверкой безопасности на узнайте, что мои пользователи не возились с моими переменными сообщений через данные тампера

Ответ 7

Если вы создадите систему тегов, такую ​​как здесь. Вы можете установить значения в скрытое поле.

Ответ 8

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

Он также часто используется для целей безопасности (как сказал генезис).

Другая причина может заключаться в сценариях, ориентированных на JavaScript, возможно, для нестандартных элементов управления, таких как древовидные структуры, где концепция выбранного node не может быть представлена ​​как обычный ввод. Вместо этого JS может манипулировать скрытым полем и хранить в нем имя /id node, чтобы он мог быть прочитан сервером.

Ответ 9

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

Сейчас я работаю над проектом, когда пользователь создает несколько элементов, которые представлены как объекты данных в JavaScript, и сериализуется при отправке на сервер. Эти элементы данных выражаются одним способом при отображении пользователю с помощью HTML, другим способом, как JavaScript, и третьим способом отправки на сервер. Скрытый ввод - единственный способ выполнить это. (Хорошо, отлично не на самом деле единственный способ, но, безусловно, самый разумный способ).

Ответ 10

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

Ответ 11

Как следует из названия, скрытые поля похожи на другие поля ввода, кроме одного различия, т.е. скрытые поля фактически не отображаются пользователю и, следовательно, не могут быть отредактированы пользователем. Его значение может быть установлено только во время выполнения т.е. может представлять собой отправку формы, которая отправляет данные на сервер. Но данные, установленные на html-странице i.e. name/value, можно увидеть в html-источнике страницы (просмотреть источник страницы).