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

Форум PHP

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

 

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

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

тема: Addslashes vs Stripslashes - обработка текста перед помещением в базу данных
 
 автор: Buhen   (14.07.2007 в 21:25)   письмо автору
 
 

Подскажите когда надо использовать ту или иную функцию. Я читал что вроде на выводе данных их бд надо использовать stripslashes а при вводе в БД надо использовать addslashes. Но мнения расходятся где одно в другом месте другое. Помогите разобраться

   
 
 автор: Poison   (14.07.2007 в 21:27)   письмо автору
 
   для: Buhen   (14.07.2007 в 21:25)
 

Где вы читали там написано правильно. а где мнения расходяться неходите туда=)))

   
 
 автор: Buhen   (14.07.2007 в 21:29)   письмо автору
 
   для: Poison   (14.07.2007 в 21:27)
 

Та же гостевая книга на этом сайте там при занесении в бд используется stripslashes

   
 
 автор: SportSoft   (14.07.2007 в 23:00)   письмо автору
 
   для: Buhen   (14.07.2007 в 21:29)
 

Pri rabote s bazami dannyh ispol'zuyut funkciyu mysql_escape_string(string string); Stripslashes primenyayut pri vklyuchennyh magic_guotes_gpc(), potomu chto ot nee problem bol'she...:)

   
 
 автор: cheops   (15.07.2007 в 09:52)   письмо автору
 
   для: Buhen   (14.07.2007 в 21:25)
 

При обработке данных, предназначенных для формирования SQL-запросов, следует ориентироваться на состояние директивы magic_quotes_gpc конфигурационного файла php.ini, если директива включена, GET, POST, COOKIE данные можно не экранировать, если отключена - следует экранировать.
<?php
  
if (!get_magic_quotes_gpc())
  {
    
$_GET['text'] = addslashes($_GET['text']);
  }
?>

Иногда используют другой подход, убирают экранирование при помощи stripslashes(), если включены "магические кавычки", а затем все данные подвергают экранированию при помощи addslashes()
<?php
  
if (get_magic_quotes_gpc())
  {
    
$_GET['text'] = stripslashes($_GET['text']);
  }
  
$_GET['text'] = addslashes($_GET['text']);
?>

PS Без учёта get_magic_quotes_gpc() использование функций stripslashes() и addslashes() перед помещением в базу данных GET, POST, COOKIE данных бессмысленно, по крайней мере до появления PHP 6, где механизм "магических кавычек" будет исключён.

   
 
 автор: Buhen   (15.07.2007 в 10:05)   письмо автору
 
   для: cheops   (15.07.2007 в 09:52)
 

Большое спасибо cheops! УЧТУ!

   
 
 автор: SportSoft   (15.07.2007 в 12:44)   письмо автору
 
   для: Buhen   (15.07.2007 в 10:05)
 

Nado ispnl'zovat' mysql_escape string!

   
 
 автор: Ralph   (15.07.2007 в 15:15)   письмо автору
 
   для: SportSoft   (15.07.2007 в 12:44)
 

по моему,надо использовать то,что тебе удобнее...Обоснуй преимущества mysql_escape_string над addslashes,а то я до сих пор особой разницы не понял...

   
 
 автор: Ralph   (15.07.2007 в 15:15)   письмо автору
 
   для: SportSoft   (15.07.2007 в 12:44)
 

И вообще,вопрос немного некорректно поставлен...Это то же самое,что спросить,что лучше-ободрать двери от краски или покрасить их.Все зависит от конкретных условий.Если двери не покрашены,то надо их красить,если на них старая краска,то надо их обдирать

   
 
 автор: Buhen   (15.07.2007 в 16:19)   письмо автору
 
   для: Ralph   (15.07.2007 в 15:15)
 

Дак что лучше использовать: mysql_escape_string или addslashes?

   
 
 автор: Sportsoft   (15.07.2007 в 19:58)   письмо автору
 
   для: Buhen   (15.07.2007 в 16:19)
 

mysql_escape_string добавляет слыши перед символами: \x00, \n, \r, \\, ', ", \x1A. А addslashes только перед ', ", \. Смысл я сказал, а вот что использовать - это уже решать Вам.

   
 
 автор: Ralph   (15.07.2007 в 20:32)   письмо автору
 
   для: Sportsoft   (15.07.2007 в 19:58)
 

Если addslashes экранирует обратные слэши,то автоматически будут заэкранированы и \r и \n и даже \z...Вот почему я и интересуюсь,почему так настойчиво рекомендуется именно mysql_escape_string,а не addslashes...

   
 
 автор: ProtoTeeP   (29.09.2007 в 11:07)   письмо автору
 
   для: Ralph   (15.07.2007 в 20:32)
 

UP!!!

так что лучше использовать???

addslashes или mysql_escape_string???
и есть ли обратная функция к mysql_escape_string?

   
 
 автор: bronenos   (29.09.2007 в 11:36)   письмо автору
 
   для: ProtoTeeP   (29.09.2007 в 11:07)
 

если уж мускулисты сделали отдельную ф-ию, наверное стоит ею и воспользоваться

   
 
 автор: Unkind   (29.09.2007 в 11:38)   письмо автору
 
   для: ProtoTeeP   (29.09.2007 в 11:07)
 

addslashes или mysql_escape_string???

<?php
var_dump
(mysql_escape_string("\r\n"));
var_dump(addslashes("\r\n"));
?>


> и есть ли обратная функция к mysql_escape_string?
В точности обратной нет. Можно написать, конечно, но в нормальных ситуациях такой функции не требуется.

   
Rambler's Top100
вверх

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