Ik ben bezig met een clan website aan het maken voor een spel.
Ik heb geen verstand van die nieuwe php en ik ben benieuwd of dit wel veilig genoeg is tegen sql injectie ?
Mvg andy
[code]
<?php
if(isset($_POST['gegevens'])) {
mysql_query("UPDATE ".DB_CHARS." SET voornaam='".$_POST['voornaam']."' WHERE accountnaam='".$char->accountnaam."'");
mysql_query("UPDATE ".DB_CHARS." SET achternaam='".$_POST['achternaam']."' WHERE accountnaam='".$char->accountnaam."'");
mysql_query("UPDATE ".DB_CHARS." SET day='".$_POST['day']."' WHERE accountnaam='".$char->accountnaam."'");
mysql_query("UPDATE ".DB_CHARS." SET month='".$_POST['month']."' WHERE accountnaam='".$char->accountnaam."'");
mysql_query("UPDATE ".DB_CHARS." SET year='".$_POST['year']."' WHERE accountnaam='".$char->accountnaam."'");
mysql_query("UPDATE ".DB_CHARS." SET taal='".$_POST['taal']."' WHERE accountnaam='".$char->accountnaam."'");
echo "Je gegevens zijn verandert.<br><br><meta http-equiv=Refresh content=1 ;url=index1.php?p=profile>";
}
?>
[code]
Gebruik mysql_query_escape_string() om je aanpasbare waardes die je meegeeft in je query, zoals je $_POST.
En om het geheel meteen wat overzichtelijker te maken:
<?php
mysql_query("UPDATE ".DB_CHARS."
SET voornaam='".mysql_real_escape_string($_POST['voornaam'])."',
achternaam='".mysql_real_escape_string($_POST['achternaam'])."',
day='".mysql_real_escape_string($_POST['day'])."',
month='".mysql_real_escape_string($_POST['month'])."',
year='".mysql_real_escape_string($_POST['year'])."',
taal='".mysql_real_escape_string($_POST['taal'])."
WHERE accountnaam='".$char->accountnaam."'
");
?>
Maar er breekt een tijd aan dat de MySQL-functies niet meer zullen werken, dus het kan geen kwaad om alsnog de overstap te maken.
Ten eerste mag je die hele lap code van je met die array en de eregi's weggooien. Waarom wou je speciale woorden filteren, terwijl je juist deze input onschadelijk wilt laten maken (wat mysql_real_escape_string doet).
Verder als je met de tijd mee wilt gaan, dan is het aan te raden om je te verdiepen in de migratie-changelog's van PHP. Hierin staat beschreven welke functies aangepast worden, welke toegevoegd worden en wat er verwijderd wordt.