stripslashes удаляет лишние слеши

ohppc

Новичок
stripslashes удаляет лишние слеши

конструкция
PHP:
	if (get_magic_quotes_gpc()) {

        $string = stripslashes($string );
    }
удаляет слеш например из строки http://example.com\/ , в то время как не должна, если stripslashes удаляет только слеши, добавляемые addslashes. Как можно избежать удаления нужных слешей?
 

Сергей123

Новичок
Вообще-то, если этот слеш там был "до magic_quotes", то он должен был проescape'иться, и strip... должна была убрать именно этот escape'инг, а слеш оставить. Проверяйте...
 

ohppc

Новичок
Бресь Сергей
спасибо, что откликнулись. Строка http://example.com\/ есть в mysql базе (как она хранится там, не знаю, но из базы в пхп попадает именно в таком виде), но в выражении UPDATE where `field` = '.quote_smart($value).' эта строка уже без слеша. Функция взята из мануала http://php.net/manual/en/function.mysql-real-escape-string.php
PHP:
// Quote variable to make safe
function quote_smart($value)
{
   // Stripslashes
   if (get_magic_quotes_gpc()) {
       $value = stripslashes($value);
   }
   // Quote if not a number or a numeric string
   if (!is_numeric($value)) {
       $value = "'" . mysql_real_escape_string($value) . "'";
   }
   return $value;
}
 

hermit_refined

Отшельник
ohppc
так... magic_quotes_gpс влияет на данные, полученные из внешнего мира - $_POST, $_GET...; на данные, полученные из бд, она никак не влияет, и применять stripslashes() к ним не следует, чтобы ни возвращала get_magic_quotes_gpc().
 

Фанат

oncle terrible
Команда форума
Надо, кстати, в мануал написать, чтобы исправили

-~{}~ 12.01.07 18:23:

ohppc
почитай пока http://phpfaq.ru/slashes
чтобы понимать, как и что надо слешить
 
Сверху