Cambia il tuo codice in questo per renderlo sicuro e funzionale:
<?php
// Connect to the database
mysql_connect ("localhost","Username","Password")
or die ('Error: ' . mysql_error());
echo "connected to database!";
mysql_select_db ("Database");
// Insert data into table
$Email= mysql_real_escape_string($_POST['Input2']);
$Name= mysql_real_escape_string($_POST['Input3']);
$Company= mysql_real_escape_string($_POST['Input4']);
$Price= mysql_real_escape_string($_POST['Input5']);
$action = mysql_real_escape_string('insert php code for button here');
$query = "INSERT INTO CustomerInformation
(Email,Name,Company,Price,Tab Count,Action)
VALUES
('$Email', '$Name', '$Company', '$Price', '$action') ";
mysql_query($query) or die ('Error updating database');
echo "Database updated successfully!";
?>
Nota che non è necessario inserire un id
nel tavolo. Se hai un campo di incremento automatico id
di quanto MySQL creerà automaticamente un ID per te.mysql_real_escape_string()
sfugge a valori per te. Circonda sempre il tuo $var
nella query con '
virgolette singole o mysql_real_escape_string()
non lavoro! E non usarlo mai per i nomi di colonne/tabelle o database, solo per i valori.
Vedi:queste domande per maggiori informazioni:
SQL injection in generale:Come funziona l'SQL injection dalle "Bobby Tables" " Lavoro a fumetti XKCD?
protezione contro SQL injection quando si utilizzano nomi di tabelle dinamici:Come impedire l'iniezione SQL con nomi di tabelle dinamici?