PHP - магические кавычки gpc и вопрос с полосками - PullRequest
2 голосов
/ 30 ноября 2010

Хорошо, у моей хостинговой компании magic_quotes_gpc получилось ON, и я подготовил свой PHP-скрипт, используя stripslashes() при подготовке этого.Но теперь хостинговая компания говорит, что собирается отключить magic_quotes_gpc, и мне было интересно, что теперь произойдет с моими данными сейчас, когда присутствует stripslashes(), если я пройду все мои миллионы строк кода и избавлюсь от stripslashes()?или оставить функцию stripslashes() в покое?оставит ли stripslashes() испортить мои данные?

Ответы [ 3 ]

9 голосов
/ 30 ноября 2010

Ваш код должен использовать get_magic_quotes_gpc, чтобы увидеть, включены ли магические кавычки, и только косые черты, если они есть. Вы должны запустить блок кода, подобный следующему, точно в одном месте, совместно используемом всеми вашими сценариями; если вы используете stripslashes в нескольких местах, вы делаете это неправильно.

// recursively strip slashes from an array
function stripslashes_r($array) {
  foreach ($array as $key => $value) {
    $array[$key] = is_array($value) ?
      stripslashes_r($value) :
      stripslashes($value);
  }
  return $array;
}

if (get_magic_quotes_gpc()) {
  $_GET     = stripslashes_r($_GET);
  $_POST    = stripslashes_r($_POST);
  $_COOKIE  = stripslashes_r($_COOKIE)
  $_REQUEST = stripslashes_r($_REQUEST);
}
1 голос
/ 30 ноября 2010

Я бы начал проходить и удалять stripslashes().Вы можете сделать это заранее, протестировав magic_quotes_gpc и позвонив stripslahes(), если это необходимо.

0 голосов
/ 30 ноября 2010

Мегар имеет правильный ответ.

Но чтобы разобраться в ситуации, вам нужно что-то вроде Notepad ++ с функцией поиска по файлам. Скопируйте фрагмент кода Мегара и найдите полоски ()

...