2013-06-06 3 views
-1

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

Одна часть формы - поле названия.

Я получаю предыдущее значение заголовка и вставить его в поле с помощью PHP:.

<input id="title" value=".$previousValue."> 

Проблема заключается в том, когда название имеет "в нем

Say, если название было:

test" 

Он будет показывать только в браузере:

test 

При проверке элемента «нет ничего плохого в PHP.

Может ли кто-нибудь сказать мне, как получить котировку, которая будет отображаться в браузере?

Благодаря

+0

Отъезда нити/вопрос, как [это] (http://stackoverflow.com/questions/14314009/which-functions-are-needed -for-secure-form-input);) – kero

ответ

0

Вы должны заменить кавычку с HTML сущности, так как в противном случае браузер будет думать, что вы просто пытаетесь закрыть значение атрибута:

<input id="title" value="<?php echo str_replace('"', '&quot;', $previousValue); ?>"> 

Edit: Или, как другие правильно указал , вы можете использовать ярлык, который будет ловить другие случаи:

<input id="title" value="<?php echo htmlspecialchars($previousValue); ?>"> 
+0

.... что это не то, как вы эхо из строк в html-код из PHP .... – Neal

+0

Да, извините, ошибка копирования-вставки. Исправлена. –

+0

:-D @DerekHendersonnnnnn – Neal

0
<input id="title" value="test""> <<<--- see the issue there? 

Вы должны бежать ваши цитаты:

<input id="title" value="test&quot;"> 

Так в PHP:

<input id="title" value="<?php echo htmlspecialchars($previousValue)?>"> 
0

Вы должны всегда использовать htmlspecialchars($your_variable) при выводе в HTML. Это будет кодировать символы, такие как ", > и т. Д., Чтобы они не нарушили html.

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