Как использовать input type hidden
Атрибут hidden используется в формах для передачи данных без отображения пользователю. Его применяют для идентификаторов, токенов и служебных значений.
Разберётесь, как работает input type hidden и какие данные допустимо передавать таким способом. Вы научитесь учитывать ограничения и риски безопасности, чтобы не допускать ошибок при разработке форм.
Для чего нужен input type hidden?
С помощью input type hidden разработчики веб-форм могут хранить и отправлять информацию, скрытую от пользователей.
<input type="hidden">Скрытые поля можно использовать для сохранения текущего состояния многостраничных форм, собирать cookie-файлы для отправки вместе с формой, а также хранить данные, которые не вводятся пользователем.
Это может быть как неизменяемая информация, так и данные, генерируемые с помощью JavaScript, о которых пользователь может и не подозревать (например, время загрузки формы).
Примечание: Не забывайте, что скрытые поля нельзя назвать полностью скрытыми — они просто недоступны большинству пользователей, но легко просматриваются в исходном коде страницы. Поэтому никогда не храните в них пароли или другие конфиденциальные данные.
Пример использования input type hidden
Синтаксис использования input type hidden должен соответствовать строке, выделенной в коде, приведенном ниже в качестве примера:
<html>
<body>
<form action="/page.php">
Name: <input type="text" name="fname">
<input type="hidden" name="country" value="US">
<input type="submit" value="Submit">
</form>
</body>
</html>Как видно из примера, мы сохраняем в скрытом поле значение страны “US ”, поэтому, когда пользователь отправит форму, мы будем знать, что он из США. Разумеется, эти данные можно поменять на другие, изменив HTML-код.
Можно использовать input type hidden для хранения даты и времени (в примере это сделано с помощью MySQL ):
<input type="hidden" name="date" value="<?php CURDATE(); ?>">
<input type="hidden" name="date" value="<?php CURTIME(); ?>">В PHP можно воспользоваться следующим методом:
<input type="hidden" name="date" value="<?php print(date("m/d/Y, h:s A")); ?>">
Комментарии
В примере input type hidden сохраняет значение страны “US”. Значит ли это, что пользователь любой Не US страны будет все равно отправлен на сервер как country=US?
В данном примере, да. Значение лучше конечно генерировать динамически с помощью например JS или PHP.