Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обрамляйте кавычками!
 
 автор: Mookapek   (07.01.2009 в 01:37)   письмо автору
 
 

Недавно очень долго не мог понять в чем причина непонятного поведения PHP. Есть поле <textarea>, значение этого поля передавалось в скрытом поле:
<input type='hidden' name='text' value=<?php echo $_POST['text']; ?>>

Так вот никак я не мог понять, почему значение переменной $_POST['text'] выводилось как "Раз" вместо "Раз два", т.е. только первое слово. Оказывается надо было значение value обрамить кавычками:
<input type='hidden' name='text' value="<?php echo $_POST['text']; ?>">

Кстати, в литературе по PHP всегда встречал вариант без кавычек.

  Ответить  
 
 автор: OpenWindow   (07.01.2009 в 01:39)   письмо автору
 
   для: Mookapek   (07.01.2009 в 01:37)
 

Я тоже заметил, что в литературе (любой) много ошибок... Именно по этому нужно учится по нескольким книгам одновременно...

  Ответить  
 
 автор: sl1p   (07.01.2009 в 02:39)   письмо автору
 
   для: OpenWindow   (07.01.2009 в 01:39)
 

ну да, чтобы все ошибки сразу изучить ;)

  Ответить  
 
 автор: Trianon   (07.01.2009 в 10:26)   письмо автору
 
   для: Mookapek   (07.01.2009 в 01:37)
 

Я Вам больше скажу. Обрамлять строку кавычками недостаточно.
И доказать это очень легко. Нужно лишь попробовать включить в значение строку с кавычкой.

Ситуация, которую Вы рассматриваете, не имеет по большому счету, прямого отношения к php.
Это скорее аспект языка HTML.

  Ответить  
 
 автор: ДаньЧег   (07.01.2009 в 10:33)   письмо автору
 
   для: Trianon   (07.01.2009 в 10:26)
 

Их нада еше и хорошо видеть и разбиратся в них!
А то я когда в первый раз увидел
'Методом GET передано: " '.$_GET['text'].' "'
мне аж както не посебе стало!

  Ответить  
 
 автор: serjinio   (08.01.2009 в 09:56)   письмо автору
 
   для: Mookapek   (07.01.2009 в 01:37)
 

<input type='hidden' name='text' value="<?php echo htmlspecialchars($_POST['text'] ) ; ?>">

И выводите любой текст к любыми кавычками...
или
<textarea><?php echo $_POST['text']; ?></textarea>

  Ответить  
 
 автор: Trianon   (08.01.2009 в 10:58)   письмо автору
 
   для: serjinio   (08.01.2009 в 09:56)
 

для textarea точно также нужен htmlspecialchars()

  Ответить  
 
 автор: cheops   (08.01.2009 в 15:52)   письмо автору
 
   для: Mookapek   (07.01.2009 в 01:37)
 

>Кстати, в литературе по PHP всегда встречал вариант без кавычек.
Странно, может передавались числовые значения? А вообще для атрибутов всегда нужно использовать кавычки и полную расшифровку, даже так неправильно
<input type='checkbox' checked>

следует атрибут checked расшифровывать
<input type='checkbox' checked='checked'>

И вообще пара на XHTML перебираться :)

  Ответить  
 
 автор: BinLaden   (08.01.2009 в 15:55)   письмо автору
 
   для: cheops   (08.01.2009 в 15:52)
 

> И вообще пара на XHTML перебираться

Это говорит cheops!!!

Кстати, тогда и слеш не забывать:
<input type='checkbox' checked='checked' />

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования