Беда с кавычками в полях формы

LameRoy

Guest
Беда с кавычками в полях формы

Кто нибудь может подсказать эффективный способ избежать следующей проблемы:
Есть переменная
$a = "test" test;
$a = 'test' test

Когда выводишь это как поле формы, или вообще ничего не выводится или текст после кавычек обрезается....

echo "<input type=\"text \" name=\"text\" value=\"$a\">"; // ne vivodit nichego

echo "<input type=\"text \" name=\"text\" value=$a>"; // ne vivodit text posle kavichek

echo "<input type=\"text \" name=\"text\" value='$a'>"; // korrektno vivodit " no ne vivodit esli v tekste est' '
 

RomikChef

Guest
Саид, ты откуда пришел?
Тебя не звали.
Не нужно использовать <textarea>
во-первых, для текстарии тоже надо делать то, что сказал Крейзи, а во вторых, текстарию надо использовать, когда много строк. а когда одна - текст.
 

Georgy

Guest
на тебе функцию парсинга кавычек и апострофов именно для вывода в формы:

PHP:
function quot( $string ) 
{
        if ( is_array ( $string ) ) {
            foreach ( $string as $key => $value ) {
                    $string[$key] = quot( $value );
            }
        }else{
            $string = str_replace ( '"', '&quot;', $string );
            $string = str_replace ( "'", '&apos;', $string );
        }

        return $string;
}
 

Ваня-Ваня

Guest
Георгий, скажи пожалуйста, а чем эта функция лучше, чем встроенная htmlspecialchars?
которая и так все делает, и универсальна.
и еще - расскази, как ты в поле формы собрался массив вводить?

Саид, приведи пример такой ситуации. очень интересно.

Я вот одного понять не могу, дорогие граждане.
Откуда такая креативность?
Откуда такое желание делать простые вещи - сложно?
Вашу бы энергию - да в мирных бы целях...
 

Ваня-Ваня

Guest
вполне адекватный ответ.
Ждем Саида.
 

DiMA

php.spb.ru
Команда форума
function quot - бред. Использовать можно/нужно только htmlspecialchars(), которая заменяет 4 известных символа. Путь с обходом массивов.
 

Said

Guest
Ваня-Ваня
В любых случаях можно использовать
textarea для ввода текста вместо input
если нет жестких требований например
к дизайну формы
 

BoFFiN

Новичок
Georgy

И тишина.....

Ваня-Ваня
Действительно, один из самых мощных и раскрученных русских форумов по PHP, но реализация на таком низком уровне... Где не надо усложняют, где надо отвечают не в тему, или закрывают её... Есть форумы скромнее, но приносят пользы намного больше!


P.S. Я тоже за htmlspecialchars.
 

Ваня-Ваня

Guest
Это если не брать в расчет то, что форум - это не машина для ответов, а сесто, кудаприходят все, кто угодно.
и отвечают тоже - все, кто угодно.

Отсюда вывод - если бы ты, например, не писал не втему, то внес бы вклад в оздоровление этого форума - верно?
 

Crazy

Developer
Автор оригинала: Said
В любых случаях можно использовать
textarea для ввода текста вместо input
если нет жестких требований например
к дизайну формы
Брат, чем поможет твой совет, если сделать так, как показано ниже?

PHP:
$a = 'А еще бывает тэг <textarea></textarea> -- очень хороший тэг';
:)
 

Crazy

Developer
Автор оригинала: Ваня-Ваня
как ты в поле формы собрался массив вводить?
Не знаю, как твой оппонент, а я иногда практикуюнечто типа такого:

PHP:
<?php

function edit_values($prompt,$name,$data) {
  echo '<table><tr valign="top"><td>'.$prompt.'</td><td>';
  foreach($data as $key=>$item) {
    echo '<input name="'.htmlspecialchars($name.'_'.$key).'" value="'.htmlspecialchars($item).'"><br>';
  }
  echo '</td></tr></table>';
}

edit_values('Foo','bar',array('buzz'=>'aaaa','fluxx'=>'bbbb'));

?>
 
Сверху