Po pierwsze pamiętaj, aby uciec od wszelkich ciągów przychodzących do Ciebie przez POST, GET lub REQUEST (poczytaj o atakach wstrzykiwania SQL, jeśli nie masz pewności, dlaczego).
Coś takiego może zadziałać:
$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);
}
Uwaga :Nigdy nie przechodź po prostu w pętli przez tablicę $_POST, aby utworzyć instrukcję SQL. Przeciwnik może dodać dodatkowe pola POST i prawdopodobnie spowodować psoty. Pętla przez tablicę wejściową użytkownika może również prowadzić do wektora wstrzyknięcia:nazwy pól należy dodać do instrukcji, co oznacza, że są one potencjalnym wektorem. Standardowe techniki zapobiegania wstrzykiwaniu (przygotowane parametry instrukcji, dostarczane przez sterownik funkcje cytowania) nie będą działać w przypadku identyfikatorów. Zamiast tego użyj białej listy pól do ustawienia i zapętl ją nad białą listą lub przekaż tablicę wejściową przez białą listę.