Probeer dit script eens
PHP
<?php
include "config.php";
$nieuwe = $_POST['nieuwe_naam'];
$nieuwe = mysql_real_escape_string($nieuwe);
if(isset($nieuw)) {
$query = mysql_query("SELECT * FROM families WHERE naam='" . $nieuw . "'");
$test = mysql_fetch_array($query);
if ($nieuw != $test['naam']){
mysql_query("UPDATE users SET familie='" . $_POST['nieuwe_naam'] . "' WHERE familie='" . $user->familie . "'");
mysql_query("UPDATE families SET naam='" . $_POST['nieuwe_naam'] . "' WHERE naam='" . $familie->naam . "'");
echo "Je familie naam is succesvol geupdate";
die();
} else {
echo "De famillie naam " . $nieuw . " bestaat al.";
die();
}
} else {
echo "maak hier de textvelden aan";
die();
}
?>
Toon Meer
overigens heb ik nog even verder naar het script gekeken maar ik raad sterk aan om geen mysql_fetch_object te gebruiken maar mysql_fetch_array;)
overigens weet ik niet hoe het zit met de overige mysql querys waar ik express nog maar de $user->familie en de $user->naam heb laten staan, ook heb ik de num_rows weggehaalt omdat ik niet duidelijk zag waarom die er tussen stont.
voor extra beveiliging is misschien ook handig om te weten dat mysql_real_escape_string wel enkele dingen doet maar zeker niet alle tekens blockeerd hiervoor dient u een specialen array op te maken die vervolgens met foreach en strpos alles naloopt in de post.
PHP
<?php
include "config.php";
$filter = array(
'#~#ius',
'#!#ius',
'#@#ius',
'#$#ius',
'#%#ius',
'#^#ius',
'#&#ius',
'#*#ius',
'#(#ius',
'#)#ius',
'#-#ius',
'#+#ius',
'#=#ius',
'#[#ius',
'#]#ius',
'#{#ius',
'#}#ius',
'#|#ius',
'#.#ius',
'#<#ius',
'#>#ius',
'#DROP#ius'
);
foreach($filter as $badchar) {
if(strpos($_POST['nieuwe_naam'], $badchar)) {
echo "This attempt has been blocked.";
die();
}
}
$nieuwe = $_POST['nieuwe_naam'];
$nieuwe = mysql_real_escape_string($nieuwe);
if(isset($nieuw)) {
$query = mysql_query("SELECT * FROM families WHERE naam='" . $nieuw . "'");
$test = mysql_fetch_array($query);
if ($nieuw != $test['naam']){
mysql_query("UPDATE users SET familie='" . $_POST['nieuwe_naam'] . "' WHERE familie='" . $user->familie . "'");
mysql_query("UPDATE families SET naam='" . $_POST['nieuwe_naam'] . "' WHERE naam='" . $familie->naam . "'");
echo "Je familie naam is succesvol geupdate";
die();
} else {
echo "De famillie naam " . $nieuw . " bestaat al.";
die();
}
} else {
echo "maak hier de textvelden aan";
die();
}
?>
Toon Meer
je kan natuurlijk ook een nog sterkere beveiliging maken met
Met vriendelijke groet,
xize