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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Экранирование кавычек и слешей

Сообщения:  [1-3] 

 
 автор: ZooM (ССС)   (07.05.2006 в 06:30)   письмо автору
 
   для: Trianon   (06.05.2006 в 19:46)
 

Спасибо чувак!!!

   
 
 автор: Trianon   (06.05.2006 в 19:46)   письмо автору
 
   для: ZooM (ССС)   (06.05.2006 в 19:38)
 

Вероятно, в конфигурационном файле php включен режим магических кавычек (magic_quotes_gpc), при котором на старте скрипта все переменные из строки запроса, форм, кукисов преобразуются так, что перед каждым слэшем, апострофом, кавычкой (и еще некоторыми спецсимволами) добавляется обратный слэш.
При необходимости, избавиться от привнесенных слэшей можно с помощью функции stripslashes:

if(get_magic_quotes_gpc())
    $message = stripslashes($message);

   
 
 автор: ZooM (ССС)   (06.05.2006 в 19:38)   письмо автору
 
 

Короче дело такое :
есть скрипт который обрабатывает и записывает переданный текст из textarea в файл msg.txt
вот он:

$msg = fopen("forum_s/$add_ok/msg.txt", "a");
$message = htmlspecialchars($message);
$message = str_replace("\n", "<br>", $message);
$message = str_replace("", "<b>", $message);
$message = str_replace("
", "</b>", $message);
$message = str_replace("[red]", "<font color=red>", $message);
$message = str_replace("[/red]", "</font>", $message);
$message = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$message);

$messag = "<tr><td colspan=5 background=img/tab_bg1.gif height=5 class=main><a style='font-size:2px'>&nbsp;</a></td></tr><tr valign=top><td class=main2 width=100><b>$username</b><br><a style='font-size:10px'>&#195;&#238;&#240;&#238;&#228;:$city</a></td><td class=main2 width=80%>$message</td></tr>\n";
fputs($msg, $messag);
fclose($msg);


но проблема такая : при выводе содержимого этого файла возникает проблема с кавичками и слэшами !
например если мы отправим такой текст :

<? Error_Reporting(E_ALL & ~E_NOTICE); 

$text file_get_contents("http://www.yandex.ru/index.html"); 

$mask_1="|<td class=\"ticker\\"><a href=\"(.+)<nobr>(.+)</nobr></a></td>|i"
preg_match_all($mask_1$text$massiv_1); 

$mask_2="|<td class=\"rate\">(.+)</td>|i"
preg_match_all($mask_2$text$massiv_2); 

echo 
"Курсы Валют :<br>\n"
echo 
$massiv_1[2][0]." : ".$massiv_2[1][0]."<br>\n"
echo 
$massiv_1[2][1]." : ".$massiv_2[1][1]."<br>\n"

?>


то после обработки , записи в файл , при выводе он отобрадается так :


<? Error_Reporting(E_ALL & ~E_NOTICE); 

$text file_get_contents(\"http://www.yandex.ru/index.html\"); 

$mask_1=\"|<td class=\\\"ticker\\\\\"><a href=\\\"(.+)<nobr>(.+)</nobr></a></td>|i\"; 
preg_match_all(
$mask_1$text$massiv_1); 

$mask_2=\"|<td class=\\\"rate\\\">(.+)</td>|i\"; 
preg_match_all(
$mask_2$text$massiv_2); 

echo \"Курсы Валют :<br>\\n\"; 
echo 
$massiv_1[2][0].\" : \".$massiv_2[1][0].\"<br>\\n\"; 
echo 
$massiv_1[2][1].\" : \".$massiv_2[1][1].\"<br>\\n\"; 

?>


В чем дело?!

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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