woensdag 15 juli 2009

Meerdere POST of GET-waarden escapen: De oplossing!

Wie werkt met formulieren en databases in mysql heeft ongetwijfeld de functie mysql_real_escape_string() gebruikt om een string in de database te zetten zonder dat hackers de kans krijgen om mysql injection te forceren.

Alleen wat als je een formulier hebt met heel veel velden, dan heb je geen zin om 20 regels waarbij de variabele ge-escaped wordt.

Er is een mooie oplossing voor:

Als eerste maak je een array met alle velden die in het formulier staan.

$array = array("veld1", "veld2", "veld3", "veld4");

Daarna lees je die array uit en zorg je dat er variabelen worden aangemaakt met als waarde de ge-escapede POST, GET of REQUEST waarde:

foreach($array as $key => $value) {
${$value} = mysql_real_escape_string($_POST[$value]);
}

(Voor $_POST kun je natuurlijk ook $_GET of $_REQUEST gebruiken, het is maar net hoe je je formulier verstuurd).

Dan heb je netjes 4 variabelen: $veld1, $veld2, $veld3 en $veld4.

Geen opmerkingen:

Een reactie posten