textarea не показывает символы

fx

Guest
textarea не показывает символы

Нужна ваша помощь, сам решить не смог, хотя облазил весь инет:p
форма для модификации текста
<textarea>$post</textarea> не показывает такие символы как:

PHP:
&laquo; &raquo;  &nbsp; &#183;
а просто показывает их в форме как «» · и после изменения текста, эти скобки так и заносятся в базу данных как «» а не как
PHP:
&laquo; &raquo;  &nbsp; &#183;
Что блин делать не знаю :(
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
из <textarea>&laquo; &raquo; &nbsp; &#183;</textarea>
делаем
<textarea>&amp;laquo; &amp;raquo; &amp;nbsp; &amp;#183;</textarea>
и заменяем &amp; после post запроса не судьба?
 

fx

Guest
Автор оригинала: Demiurg
[m]htmlentities[/m]
не помогает ?
Проверил сейчас,
написал перед формой так:
PHP:
$post = htmlentities($post);
<textarea>$post</textarea>

и всё тоже самое, в базу данных заносит в символах, а при изменении выводит просто скобки и точку, и вносит в базу данных уже просто скобки и точку вмето символов ;)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
замени ты несчастный амперсанд в строке на его код в html
 

fx

Guest
Автор оригинала: Фанат
Demiurg
htmlspecialchars ему нужно.
это собственно, случай из http://phpfaq.ru/slashes#input
$post = htmlspecialchars($post);

<textarea>$post</textarea>

тоже самое, заменяет просто скобками...

-~{}~ 24.08.04 22:36:

Автор оригинала: c0dex
из <textarea>&laquo; &raquo; &nbsp; &#183;</textarea>
делаем
<textarea>&amp;laquo; &amp;raquo; &amp;nbsp; &amp;#183;</textarea>
и заменяем &amp; после post запроса не судьба?
так хочется ведь сделать чтобы показывало всё так как в базе данных:p
 

fx

Guest
Автор оригинала: c0dex
замени ты несчастный амперсанд в строке на его код в html
амперсанд это что? не совсем понял что и как сделать?

-~{}~ 24.08.04 22:41:

Автор оригинала: Фанат
не надо ЛЯ ЛЯ
проверь еще раз.
не работает, я щас ещё раз проверил, вот полный текст формы а перед ней код для исправления:


PHP:
$post = htmlspecialchars($post);
echo"
<table class=\"TC\">
  <tr>
    <td class=\"TP\">
      <form name=\"edit\" method=\"post\" action=\"edit.php\">
      <input type=\"hidden\" name=\"id\" value=\"$id\">
      Дата: <input name=\"date\" type=\"text\" value=\"$date\">
      <p class=\"Center\">
      <textarea name=\"post\" cols=\"87\" rows=\"10\">$post</textarea><br><br>
      <input type=\"submit\" name=\"edit\" value=\"Внести изменения\">
      </p>
      </form>
    </td>
  </tr>
</table>
 

Фанат

oncle terrible
Команда форума
проверяй свои кривые руки.
у меня эта ворма выводит все нормально.
откуда у тебя $post берется?

-~{}~ 24.08.04 22:54:

что за браузер?
 

fx

Guest
самое интересное что когда я смотрю код страницы при редактировании, то вижу
PHP:
<textarea name="post" cols="87" rows="10">&laquo; &raquo;  &nbsp; &#183;</textarea>
а форма отображает « » ·
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Автор оригинала: fx
амперсанд это что? не совсем понял что и как сделать?
если ты не знаешь, что есть амперсанд, тогда как ты программируешь?
& - есперсанд, а его html эквивалент & amp; или & #038; (без пробелов после &)

я предложил "корявый" способ замены этого символа на & amp в тексте из базы. функцию для замены можешь выбрать сам.
или
PHP:
$post = str_replace("&", "& amp;",  $post);
Есть способ проще - юзать htmlspecialchars.

И тот и тот вариант - одинаковы в своей сути ибо дадут
<textarea>& amp;laquo; & amp;raquo; & amp;nbsp; & amp;#183</textarea>
 

fx

Guest
Автор оригинала: Фанат
проверяй свои кривые руки.
у меня эта ворма выводит все нормально.
откуда у тебя $post берется?

-~{}~ 24.08.04 22:54:

что за браузер?
$post из базы данных MySql
у меня браузер Firefox 0.9.3
щас посмотрел через Internet Explorer, всё тоже самое :(
 

fx

Guest
Автор оригинала: c0dex
если ты не знаешь, что есть амперсанд, тогда как ты программируешь?
& - есперсанд, а его html эквивалент & amp; или & #038; (без пробелов после &)

я предложил "корявый" способ замены этого символа на & amp в тексте из базы. функцию для замены можешь выбрать сам.
или
PHP:
$post = str_replace("&", "& amp;",  $post);
Есть способ проще - юзать htmlspecialchars.

И тот и тот вариант - одинаковы в своей сути ибо дадут
<textarea>& amp;laquo; & amp;raquo; & amp;nbsp; & amp;#183</textarea>
я недавно програмирую, учусь только :p

но твой метод проверил, он не помогает,
ведь всё проходит нормально, и когда я захожу на страницу редактирования, и смотрю код самой страницы, то вижу что знаки все в коде сохранены,
PHP:
<textarea name="post" cols="87" rows="10">&laquo; &raquo;  &nbsp; &#183;</textarea>
но сама форма их не показывет а интерпретирует как HTML и выдаёт в самой форме только точку и скобки
 

Фанат

oncle terrible
Команда форума
самое интересное что когда я смотрю код страницы
самое интересное, что кто-то здесь - ламер.

-~{}~ 24.08.04 23:10:

но сама форма их не показывет а интерпретирует как HTML и выдаёт в самой форме только точку и скобки
ВОТ ДЛЯ ТОГО, ЧТОБЫ ФОРМА ИНТЕРПРЕТИРОВАЛА, И НАДО ПРИМЕНЯТЬ HTMLSPECIALCHARS!!!!!!!!

выведи свою дату ДО htmlspecialchars - и убедись!
 

SiMM

Новичок
fx, посмотри на результат выполнения скрипта
PHP:
<textarea name="post" cols="87" rows="10"><?=htmlspecialchars('&laquo; &raquo;  &nbsp; &#183;')?></textarea>
и найди отличия.
PS: может так дойдёт?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Автор оригинала: fx
но сама форма их не показывет а интерпретирует как HTML и выдаёт в самой форме только точку и скобки
fx
я тебя умоляю сделать так:
не бери ниче из базы а напиши просто
$post = "& laquo; & raquo; & nbsp; & #183"; -без пробелов после &, а потом юзай код который дал я или htmlspecialchars

ЗЫ: броузеру похрену на то где и как интерпретировать спецкоды символов. Он тебе и выводит всю эту ахинею...
Код же страницы и то, что ты видишь на экране - не одно и то же...
 

fx

Guest
попробуйте сами, сохраните этот текст в блокноте, и сохраните страницу как HTML и увидите сами что форма показывает точку и скобки
PHP:
<html>
<head>
<title>Edit</title>

</head>
<body>

<textarea name="post" cols="87" rows="10">&laquo; &raquo;  &nbsp; &#183;</textarea>

</body>
</html>
 

SiMM

Новичок
fx, до тебя туго доходит?
PHP:
<textarea name="post" cols="87" rows="10"><?=htmlspecialchars('&laquo; &raquo;  &nbsp; &#183;')?></textarea>
выдаёт
PHP:
<textarea name="post" cols="87" rows="10">&amp;amp;laquo; &amp;amp;raquo;  &amp;amp;nbsp; &amp;amp;#183;</textarea>
Теперь сядь, подумай и иди учить HTML. Или просто забей на программирование.
PS: парсер форумов глючит ;)
 
Сверху