[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с текстовой формой
vzov
Добрый вечер жители форума!
Столкнулся с одной проблемой, может кто-то знает решение. Есть поле ввода:
<input type="text" name="user_first_name" value="<?=$this->config->item('t_user_first_name');?>">

<?=$this->config->item('t_user_first_name');?> - эта переменная содержит имя. Но если имя содержит знак " (двойные кавычки), то все что после двойных кавычек пропадает, и сами кавычки тоже пропадают.

Например при передачи:
Неглид"укус
Выведется:
Неглид

Как решить эту проблему?



Спустя 24 минуты, 54 секунды (4.07.2011 - 16:34) tatti написал(а):
надо экранировать кавычки

Спустя 4 минуты, 22 секунды (4.07.2011 - 16:38) bulgakov написал(а):
То ли я туплю... не пойму зачем тут $this этот инпут что ли в классе находится? А зачем?...

Спустя 1 минута, 9 секунд (4.07.2011 - 16:39) bulgakov написал(а):
И да экранируйте кавычки обратным слешем

Спустя 2 минуты, 1 секунда (4.07.2011 - 16:41) bulgakov написал(а):
Можно еще использовать функцию addslashes() при записи в переменную и перед выводом ее куда то stripslashes()

Спустя 3 минуты, 31 секунда (4.07.2011 - 16:45) vzov написал(а):
Цитата (bulgakov @ 4.07.2011 - 13:39)
И да экранируйте кавычки обратным слешем

Что-то я не понял. Если пройтись посимвольно и проставлять \ перед ", то он так и остается:
Неглид\"укус

Спустя 1 минута, 57 секунд (4.07.2011 - 16:47) Игорь_Vasinsky написал(а):
biggrin.gif biggrin.gif biggrin.gif

Спустя 10 минут, 32 секунды (4.07.2011 - 16:57) bulgakov написал(а):
Нет, вы не действительно не поняли если не поставить обратный слэш перед кавычкой то парсер php будет читать этот символ как служебный который означанет например начало или конец строки, а с обратным слешем кавычки будут читаться как обычный элемент строки.

Спустя 55 секунд (4.07.2011 - 16:58) bulgakov написал(а):
И опять же если много таких кавычек не надо проходить по ним и посимвольно расставлять слеши можно использовать функцию addslashes()

Спустя 16 минут, 51 секунда (4.07.2011 - 17:15) vzov написал(а):
Цитата (bulgakov @ 4.07.2011 - 13:57)
а с обратным слешем кавычки будут читаться как обычный элемент строки.

Да, но как обратный слеш убрать?

Спустя 1 минута, 33 секунды (4.07.2011 - 17:17) bulgakov написал(а):
Повторюсь еще раз, для того что бы добавить в строку обратные слеши - addslashes а для того что бы эти слеши убрать - stripslashes

Спустя 1 минута, 40 секунд (4.07.2011 - 17:18) Игорь_Vasinsky написал(а):
stripslashes() блин. не судьба строковые функции глянуть???

Цитата
эта переменная содержит имя. Но если имя содержит знак " (двойные кавычки), то все что после двойных кавычек пропадает, и сами кавычки тоже пропадают.


откуда переменная? может она уже там урезана.

Спустя 3 минуты, 14 секунд (4.07.2011 - 17:22) bulgakov написал(а):
Игорь_Vasinsky
Цитата
не судьба строковые функции глянуть???

Если уж он с такой темой сюда пожаловал то видимо не судьба) Хотя довольно странно про кавычки рассказывается в первой главе практически любой книжки по php

Спустя 1 минута, 42 секунды (4.07.2011 - 17:23) Игорь_Vasinsky написал(а):
вообще можно обработать и htmlspecialchars() и будет ему счастье.

Спустя 1 минута, 53 секунды (4.07.2011 - 17:25) bulgakov написал(а):
Игорь_Vasinsky
Или заглянуть на php.net и будет много счастья

Спустя 4 минуты, 15 секунд (4.07.2011 - 17:29) Игорь_Vasinsky написал(а):
всё есть здесь. токакак чё-так бан wink.gif

Спустя 2 минуты, 56 секунд (4.07.2011 - 17:32) vzov написал(а):
Цитата (bulgakov @ 4.07.2011 - 14:22)
Игорь_Vasinsky
Цитата
не судьба строковые функции глянуть???

Если уж он с такой темой сюда пожаловал то видимо не судьба) Хотя довольно странно про кавычки рассказывается в первой главе практически любой книжки по php

Да не в том то проблема, что не знаю как добавить или прибрать обратные слешы со строки... Я не знаю как в форму вставить ее...
<input type="text" name="user_last_name" value='<?=$this->config->item('t_user_last_name');?>'><br/>

Вставить слеши в value - оно так и выведет... Я в этом не разобрался

Спустя 4 минуты, 12 секунд (4.07.2011 - 17:37) bulgakov написал(а):
addslashes нужно применять когда у тебя записываются данные вот сюда - $this->config->item('t_user_last_name'); а уже когда ты их выводиш в инпуте то:

<input type="text" name="user_last_name" value='<?=stripslashes($this->config->item('t_user_last_name'));?>'><br/>

Например так

Спустя 37 минут, 36 секунд (4.07.2011 - 18:14) vzov написал(а):
<input type="text" name="user_first_name" value="<?=form_prep($this->config->item('t_user_first_name'))?>">

так заработало отлично и с одинарными и с двойными кавычками. Спачибо всем за помощь

Спустя 9 минут, 36 секунд (4.07.2011 - 18:24) bulgakov написал(а):
Гм.. form_prep это самописная функция какая-то или из фреймворка? А то что-то на php.net не нашел

Спустя 4 минуты, 39 секунд (4.07.2011 - 18:28) vzov написал(а):
Цитата (bulgakov @ 4.07.2011 - 15:24)
Гм.. form_prep это самописная функция какая-то или из фреймворка? А то что-то на php.net не нашел

Это функция фреймворка CodeIgniter. Я на нем проект дописываю.
http://codeigniter.com/user_guide/helpers/form_helper.html

Спустя 5 минут, 11 секунд (4.07.2011 - 18:34) bulgakov написал(а):
А тогда ясно, ну можно и так конечно.... кому как удобнее главное мысль правильная)

Спустя 13 минут, 49 секунд (4.07.2011 - 18:47) tatti написал(а):
или кликнуть сюда для безмерного счастья
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.