Auteur: Kibby - 29 juni 2006 - 16:33 - Gekeurd door: Maarten - Hits: 3453 - Aantal punten: (0 stemmen)
Omdat je op de meeste server niet de beschikking hebt tot het uitzetten van
de welbekende (en irritante) magic_quotes, post ik maar even het script dat
ik vaak gebruik om de door magic quotes toegevoegde escapes weg te halen.
Ik had eerst ook een fix voor magic_quotes_sybase erbij, maar aangezien dit echt
een insignificante minderheid is, laat ik dat maar achterwege...
Code:
Zet deze code gewoon in een common bestand, of bovenaan in je php file
<?php
/**
* Opletten voor magic quotes
*/
if (get_magic_quotes_gpc ())
{
/**
* Dit wordt gebruikt om toegevoegde backslashes weg te halen
*
* @access private
* @param mixed $value
* @return mixed
*/
function stripslashes_deep ($value)
{
// als het een array is, mappen we de functie er nogmaals over, anders
// returnen we de waarde gestripslashed.
return is_array($value) ? array_map('stripslashes_deep', $value) : (is_string($value) ? stripslashes($value) : $value);
}
// hier passen we de superglobals aan
$_POST = stripslashes_deep($_POST);
$_GET = stripslashes_deep($_GET);
// OPLETTEN: $_COOKIE kan geen arrays bevatten
$_COOKIE = stripslashes_deep($_COOKIE);
}
// natuurlijk wil je nooit backslashes in je uitvoer van de db hebben;)
set_magic_quotes_runtime (0);
?>