Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Кавычки при передаче по POST
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Без описания
Масяня
Отправлено: 26 Января, 2006 - 04:21:48
Post Id


Junior Member


Покинул форум
Сообщений всего: 50
Дата рег-ции: Сент. 2005  

Карма 0




Клиент вводит текст в форму, мне надо его форматировать и выводить на экран и в файл. Так вот, кавычки " претерпевают странные изменения, и становятся \" . То есть из текста
CODE:
Магазин "Москва"

введённого в форму, после
CODE:

$text = $_POST['text'];
echo "$text";

получается
CODE:
Магазин \"Москва\".


Что с этим делать?

Не понял
 
 Top
ETC Администратор
Отправлено: 26 Января, 2006 - 04:28:09
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Масяня пишет:
echo "$text";

никогда так не пиши.
CODE:
echo $text;
;
без всяких кавычек. Если у тебя ещё должен быть какой-то текст, то правильнее писать вот так:

CODE:
echo "Some text ".$text." there";



Это раз.

CODE:
$text = stripslashes($_POST['text']);
echo $text;

Функция stripslashes убирает слеши.
 
 Top
Alone
Отправлено: 26 Января, 2006 - 06:18:32
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




ETC пишет:
никогда так не пиши.

А почему? Вроде обычно все так пишут? И всё работает...
 
 Top
ETC Администратор
Отправлено: 26 Января, 2006 - 06:27:21
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Alone пишет:
А почему? Вроде обычно все так пишут? И всё работает...

Работает. Но гораздо медленнее, чем приведённый мною пример. PHP требуется время на разбор строки и определения в ней переменных.
 
 Top
Alone
Отправлено: 26 Января, 2006 - 06:42:30
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




ETC
Понятно.
У меня есть полезный скриптик и там просто всё записано в эти кавычки, и он правда работает довольно медленно.
Вот кусочек:

CODE:
echo " </font></div>
</td>
<td align=\"right\" width=\"95%\" nowrap>
<div align=\"left\"><font size=\"1\" color=\"$normalfontcolor\" face=\"$font\">\n";


И так сотня таких кусков в коде.

Т.е. в этом случае лучше записать так:

CODE:
echo </font></div>
</td>
<td align=right width=95% nowrap>
<div align=left><font size=1 color=$normalfontcolor face=$font>\n;


Я правильно понял?
 
 Top
ETC Администратор
Отправлено: 26 Января, 2006 - 07:01:02
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Нет, неправильно.

Вот так:

CODE:
echo " </font></div>
</td>
<td align=\"right\" width=\"95%\" nowrap>
<div align=\"left\"><font size=\"1\" color=\"".$normalfontcolor."\" face=\"".$font."\">\n";
 
 Top
Digital man 53
Отправлено: 26 Января, 2006 - 07:12:38
Post Id


Newbie


Покинул форум
Сообщений всего: 31
Дата рег-ции: Дек. 2005  

Карма 0




ETC, не совсем верно. До недавнего времени сам так заблуждался (это я про echo "Some text ".$text." there";). В данном случае следует echo 'Some text '.$text.' there';, т.к. при одинарных кавычках пхп не ищет внутри строки переменной => нагрузка становится ещё меньше.
+ становится удобней писать аттрибуты хтмл'а, т.к. двойные кавычки не надо экранировать.
- не преобразуются \n, \t и прочие хтмл-мнемоники. Т.е. так и выводятся \n, \t и т.д.
 
 Top
ETC Администратор
Отправлено: 26 Января, 2006 - 07:14:54
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Digital man 53 пишет:
Т.е. так и выводятся \n, \t и т.д.

Я в курсе. Да, так удобнее, но \n,\r и прочее приходится писать в двойных.
 
 Top
Масяня
Отправлено: 26 Января, 2006 - 07:47:08
Post Id


Junior Member


Покинул форум
Сообщений всего: 50
Дата рег-ции: Сент. 2005  

Карма 0




Цитата:
CODE:
$text = stripslashes($_POST['text']);
echo $text;

Функция stripslashes убирает слеши.


Получается, что POST преобразует мессадж...
 
 Top
ETC Администратор
Отправлено: 26 Января, 2006 - 07:52:33
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




POST ничего не преобразует. Преобразует PHP
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


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



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0462]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33