Be aware that even using ini_set to set 'magic_quotes_runtime' will stop working in PHP 5.4. See http://php.net/manual/en/info.configuration.php#ini.magic-quotes-runtime
(PHP 4, PHP 5)
set_magic_quotes_runtime — Active/désactive l'option magic_quotes_runtime
Cette fonction est OBSOLÈTE à partir de PHP 5.3.0 et a été SUPPRIMÉE à partir de PHP 7.0.0.
$new_setting
) : boolActive/désactive l'option magic_quotes_runtime.
Depuis PHP 5.3, cette fonction est devenue obsolète et lancera une alerte de niveau E_DEPRECATED lors de son exécution. Depuis PHP 5.4, cette fonction va également lancer une alerte de niveau E_CORE_ERROR lors de la tentative d'activation des guillemets magiques.
new_setting
0
l'option est désactivée, 1 l'option est activée.
Cette fonction retourne TRUE
en cas de succès ou FALSE
si une erreur survient.
Exemple #1 Exemple avec set_magic_quotes_runtime()
<?php
// Création d'un pointeur de fichier temporaire
$fp = tmpfile();
// Écriture de quelques données dans ce pointeur
fwrite($fp, '\'PHP\' est un acronyme récursif');
// Sans magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(false);
echo 'Sans magic_quotes_runtime : ' . fread($fp, 64), PHP_EOL;
// Avec magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(true);
echo 'Avec magic_quotes_runtime : ' . fread($fp, 64), PHP_EOL;
// Clean up
fclose($fp);
?>
L'exemple ci-dessus va afficher :
Sans magic_quotes_runtime: 'PHP' est un acronyme récursif Avec magic_quotes_runtime: \'PHP\' est un acronyme récursif
Be aware that even using ini_set to set 'magic_quotes_runtime' will stop working in PHP 5.4. See http://php.net/manual/en/info.configuration.php#ini.magic-quotes-runtime
You should NEVER rely on magic quotes or addslashes for security in an SQL context. You should ALWAYS use proper escape functions, such as mysql_real_escape_string. Failure to do so may result in an SQL injection vulnerability.
A simple check and disabling of magic quotes whenever needed (e.g. if you deploy to multiple servers or you don't know the target server's PHP version).
<?php
if(version_compare(PHP_VERSION, '5.3.0', '<')){
set_magic_quotes_runtime(0);
}
?>
get_magic_quotes runtime and set_magic_quotes_runtime are useful when you want to read some data in a binary file using fread() and some bytes in such file may be interpreted as \ (backslash), " (double quotes), ' (simple quote) or any "special" character that has a meaning for string processing.