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

Форум PHP

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

 

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

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

тема: Вставить данные в HTML
 
 автор: CoolCmd   (16.07.2006 в 21:16)   письмо автору
 
 

Вот код, который объясняет мою проблему:

<?php
if (empty($_POST["source"]))
{
  
$formSource "";
}
else
{
  
$formSource $_POST["source"];
}
?>
<html>
<head>
<title>-</title>
</head>
<body>

<form name="mainform" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<div>
<textarea name="source" cols="61" rows="8"><?php echo $formSource?></textarea>
<input type="submit" value="Go">
</div>
</form>

</body>
</html>



Перед символами кавычек PHP добавляет символ "\", т.е. я посылаю

12"34'56\78

а получаю

12\"34\'56\\78


Как сделать, что бы отправленный и полученный тексты были одинаковые?

   
 
 автор: DDK   (16.07.2006 в 21:28)   письмо автору
 
   для: CoolCmd   (16.07.2006 в 21:16)
 

Обрабатывайте получаемые данные при помощи функции stripslashes(), а лучше всего просто поместите в корневую папку файл .htaccess такого содержания:

php_flag magic_quotes_gpc off

   
 
 автор: CoolCmd   (16.07.2006 в 22:57)   письмо автору
 
   для: DDK   (16.07.2006 в 21:28)
 

Большое спасибо за наводку. .htaccess дают изменять не везде, поэтому вставил код из php мануала:

<?
if (get_magic_quotes_gpc())
{
  function 
stripslashes_deep($value)
  {
    return 
is_array($value) ? array_map('stripslashes_deep'$value) : (isset($value) ? stripslashes($value) : null);
  }
  
$_GET stripslashes_deep($_GET);
  
$_POST stripslashes_deep($_POST);
  
$_COOKIE stripslashes_deep($_COOKIE);
  
$_REQUEST array_merge($_GET$_POST$_COOKIE);
  
$_FILES stripslashes_deep($_FILES);
  
$_ENV stripslashes_deep($_ENV);
  
$_SERVER stripslashes_deep($_SERVER);
}
?>


Только одно непонятно, зачем эти лишние слеши включены по-умолчанию, какая от них польза?

   
 
 автор: Thrasher   (17.07.2006 в 11:25)   письмо автору
 
   для: CoolCmd   (16.07.2006 в 22:57)
 

Экранируются спецсимволы для безопасности.

   
Rambler's Top100
вверх

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