Husk først at undslippe eventuelle strenge, der kommer til dig via POST, GET eller REQUEST (læs om SQL-injektionsangreb, hvis du er usikker på hvorfor).
Noget som dette kan virke:
$semaphore = false;
$query = "UPDATE contacts SET ";
$fields = array('tel','fax','email');
foreach ($fields as $field) {
if (isset($_POST[$field]) and !empty($_POST[$field]) {
$var = mysql_real_escape_string($_POST[$field]);
$query .= uppercase($field) . " = '$var'";
$semaphore = true;
}
}
if ($semaphore) {
$query .= " WHERE Cust_Name = '$cst'";
mysql_query($query);
}
NB :Du må aldrig blot gå gennem dit $_POST-array for at oprette en SQL-sætning. En modstander kan tilføje ekstra POST-felter og muligvis forårsage fortræd. Looping gennem et brugerinput-array kan også føre til en injektionsvektor:feltnavnene skal tilføjes til sætningen, hvilket betyder, at de er en potentiel vektor. Standard teknikker til forebyggelse af injektion (forberedte sætningsparametre, driverleverede citeringsfunktioner) virker ikke for identifikatorer. Brug i stedet en hvidliste over felter til at indstille, og løkke over hvidlisten eller giv input-arrayet gennem hvidlisten.