2012-09-15 2 views
0

Я заметил блок кода, подобный следующему в рамках PHP Laravel:PHP Учет магии котировки

if (get_magic_quotes_gpc()) 
{ 
    $magics = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); 

    foreach ($magics as &$magic) 
    { 
     $magic = array_strip_slashes($magic); 
    } 
} 

Я не знаю, как идти о тестировании, но если бы это в файл start.php, который я включаю на каждую страницу, будет ли он заботиться о магических кавычках, поэтому мне не нужно беспокоиться о них?

Edit:

Вот это array_strip_slashes из Laravel:

function array_strip_slashes($array) 
{ 
    $result = array(); 

    foreach($array as $key => $value) 
    { 
     $key = stripslashes($key); 

     // If the value is an array, we will just recurse back into the 
     // function to keep stripping the slashes out of the array, 
     // otherwise we will set the stripped value. 
     if (is_array($value)) 
     { 
      $result[$key] = array_strip_slashes($value); 
     } 
     else 
     { 
      $result[$key] = stripslashes($value); 
     } 
    } 

    return $result; 
} 

ответ

0

Это будет «заботиться» о волшебных кавычек в том, что он удалит их, что это хорошая вещь. Было бы намного лучше отключить их (в PHP 5.3 они должны быть отключены по умолчанию).

+0

Да, но только в том случае, если другие люди будут использовать этот скрипт. –

+0

@Bethesda они должны были бы иметь функцию 'array_strip_slashes' –

1

Вы не array_strip_slashes показали, но при условии, что он работает правильно -

Да, эта функция должна отменить эффект магические кавычки. Если магические цитаты не включен, то этот код не запускается вообще.

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

Смежные вопросы