Глюки с <INPUT VALUE

kyzma

Новичок
Глюки с <INPUT VALUE

Привет народ. Вот такой трабл -


в переменной $s находиться - 'text & escho nemnogo texta'
Её нужно отобразить в inpute -

echo <INPUT NAME=title VALUE='.$s.'>;

В инпуте отображается так - text
Куда подевалось & escho nemnogo texta... неизвестно. Друг говорит, что в страну Мальборо. Но мне кажется здесь какой-то глюк.

Поможите, как сделать, чтобы значение переменной отображалось полностью.
 

Сергей123

Новичок
Значение атрибутов брать в двойные кавычки.
Для вывода в HTML текст преобразовывать с помощью [m]htmlspecialchars[/m]:
PHP:
echo '<input ... value="' . htmlspecialchars($v) . '">';
 

vitus

мимо проходил
правильно друг говорит, непонятно почему
вообще что-то отображается
 

Сергей123

Новичок
Блин, да понятно всё...
У него в примере апострофы - PHPшные...
В HTMLе у него
value=text & escho nemnogo texta
Соответственно text в value показывается, остальное лесом пошло.
 

kyzma

Новичок
Увы! htmlspecialchars Не хотит рапотать :(( Точно такой же результат. Текст по прежнему вместо монитора отправляется в страну Мальборо :)

-~{}~ 23.08.05 17:46:

PHP FAQ: \"Кавычки \". Примечание: формы - от это помогло :))
 

Фанат

oncle terrible
Команда форума
Увы! htmlspecialchars Не хотит рапотать
это заблуждение.
не хочет работать не htmlspecialchars , а kyzma, который не потрудился прочесть описание этой функции, а просто влепил не думая.
 

kyzma

Новичок
Я разобрался в чем трабл.
Вот часть кода формы редактирования БД -
while ($row = pg_fetch_assoc($result))
{
echo '<TR><TD>Title: </TD><TD><INPUT TYPE="TEXT" name="title" value='.$row['title'].'></TD></TR>';

В этом случае нельзя использовать htmlspecialchars() так как
в базу пойдет уже не символ &, а его код - &amp; Оказуется достаточно было добавить двойные кавычки, чтобы все заработало.

name="title" value="'.$row['title'].'"></TD></TR>';
 

Сергей123

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

-~{}~ 25.08.05 16:43:

Положи в $row['title'], например,
value"><hr>
и посмотри...
 
Сверху