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

Форум PHP

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

 

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

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

тема: mysql_escape_string а как обратно?
 
 автор: globus   (29.10.2007 в 13:41)   письмо автору
 
 

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

\"текст\"

это разумеется не примелемо
я делаю так при выводе


$f=ob_get_contents();
        ob_clean();
        echo str_replace(array("\'","\\\"","\`"),array("'","\"","`"),$f);


но мне кажется что это несколько не рацианально есть ли другое решение?

   
 
 автор: sim5   (29.10.2007 в 13:44)   письмо автору
 
   для: globus   (29.10.2007 в 13:41)
 

stripslashes()

   
 
 автор: globus   (29.10.2007 в 16:55)   письмо автору
 
   для: sim5   (29.10.2007 в 13:44)
 

я не много не прально задал вопрос,вот при эскапе стринг мы меняем внешний вид текст,а именно экранируем символы,это не трагично но все же неприятно,и если делать так как я,или использовать стрипслешес,то в первом варианте есть риск потерять символы текста

например был ввод(допустим что то вроде пхп кода для примера)

echo ""вот так получается после экранирования \" ";

на выходе получится

echo ""вот так получается после экранирования " ";

Потерян символ \,если использовать стрипслешес то вариант такойже,даже больше ибо щанс токо что в тексте окажется \ а не \" гораздо больше,так вот так и так мы что то теряем.

Что можно придумать,единственное до чего я допер это помимо экранирования еще обрамлять какими то нибудь символами %^\"^%,но разумно ли это?

   
 
 автор: sim5   (29.10.2007 в 17:11)   письмо автору
 
   для: globus   (29.10.2007 в 16:55)
 

Ничего не понял :) mysql_escape_string - экранируют перед занисением в базу обычно, а вам надо сохранить кавычки и прочие символы в тексте с кодом? Тогда вам видимо нужно htmlspecialchars(), или я опять не верно понял?

   
 
 автор: globus   (29.10.2007 в 19:14)   письмо автору
 
   для: sim5   (29.10.2007 в 17:11)
 

после обрабоки стрипслешес мы теряем абсолюнто все слеши в документе

   
 
 автор: Unkind   (29.10.2007 в 19:20)   письмо автору
 
   для: globus   (29.10.2007 в 19:14)
 

Врете. Кстати, stripslashes() не является противоположной mysql_escape_string().

   
 
 автор: kasmanaft   (29.10.2007 в 19:30)   письмо автору
 
   для: globus   (29.10.2007 в 19:14)
 


<?php
$text 
"text \\ text";
echo 
$text"<br />";
echo 
$text mysql_escape_string($text), "<br />";
echo 
stripslashes($text);
?>

   
 
 автор: Unkind   (29.10.2007 в 21:49)   письмо автору
 
   для: kasmanaft   (29.10.2007 в 19:30)
 

А вот теперь попробуйте перевод строки в $text вставить.

   
 
 автор: bronenos   (29.10.2007 в 22:30)   письмо автору
 
   для: Unkind   (29.10.2007 в 21:49)
 

(имеется в виду не <br /> а \r\n =)

   
Rambler's Top100
вверх

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