Вопрос

Мне нужно публиковать многострочные данные через скрытое поле. Данные будут просматриваться в текстовой обработке после поста. Как я могу опубликовать возврат новой линии/перевозки в форме HTML?

Я пробовал r n, но это просто публикует фактические данные " r n"

<input type="hidden" name="multiline_data" value="line one\r\nline two" />

Есть ли способ сделать это?

Это было полезно?

Решение

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

Другие советы

Вместо использования

<input type="hidden">

Попробуйте использовать

<textarea style="visibility:hidden;position:absolute;">

В то время как новые линии (возврат карет и линии) технически разрешены вu003Cinput> S. скрытый Государство, их следует избежать для совместимости со старыми браузерами. Вы можете сделать это, заменив все возвраты перевозки (\u000D или же \r) и все строки (\u000A или же \n) с проприетарными строками, которые распознаются вашим приложением, чтобы быть возвратом каретки или новой линии (а также сбежалась, если присутствует в исходной строке).

Простые сущности персонажей здесь не работают, из-за того, что не совместимые браузеры, возможно, знают &#10; а также &#13; являются новыми линиями и отбрасывают их из значения.

Пример

Например, в PHP, если вы были echo Переданное значение Textarea, вы включите новички (и бесчисленную строку).

u003Ctextarea>Какой -то текст с включенным
и новая строка с r n как отправленное значениеu003C/textarea>

Однако в PHP, если бы вы были echo ценность для ценность атрибутu003Cinput> тег, вы избежите новых линий со своими запатентованными струнами (например, \r а также \n) и избежать любых случаев ваших проприетарных строк в представленной стоимости.

u003Cinput type="hidden" value="Some text with a includedrnand a new linern as submitted value">

Затем, прежде чем использовать значение в другом месте (вставка в базу данных, электронная почта и т. Д.), Обязательно разведите представленное значение, если это необходимо.

Заверение

В качестве дальнейшего уверенности я спросил WhatWG, и Иана Хиксона, редактора HTML Spec в настоящее время, ответил:

Bfrohs Вопрос оu003Cinput type=hidden> - разрешены ли линейные подачи и возвраты перевозки в значении? Они специально запрещены в состоянии текста и состоянии поиска, но не упоминается для скрытого состояния. И, если нет, есть ли приемлемое решение HTML для хранения данных формы из Textarea?

Хикси Да, им разрешено // iirc // по установлению причинам, которые вы можете избежать их, хотя некоторые браузеры нормализуют их // Я забыл, исправили ли мы это или нет // в спецификации

Источник

Вы не говорите, для чего это или какая технология, которую вы используете, но вы должны знать, что вы не можете доверять скрытую полю, чтобы оставаться с Value = "Line One Line Two", потому что враждебный пользователь может вмешиваться с ним, прежде чем он будет отправлен обратно в пост. Поскольку вы ставите ценность вu003Ctextarea> Позже вы обязательно будете подвергаться, например, атаки сценариев поперечного сайта, если вы не проверяете и/или не дезинфицируете содержимое поля Multiline_data », прежде чем выписать его обратно.

При написании значения в скрытое поле и чтение его обратно, обычно лучше просто держать его на сервере, в качестве атрибута сеанса, или Pageflow, или все, что ваша среда обеспечивает, чтобы делать такие вещи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top