Променете кода си в този, за да го направите сигурен и функционален:
<?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!";
?>
Имайте предвид, че не е необходимо да вмъквате id
в масата. Ако имате поле за автоматично увеличение id
отколкото MySQL ще създаде автоматично идентификатор за вас.mysql_real_escape_string()
екраниращи стойности за теб. Винаги обграждайте вашия $var
в заявката с '
единични кавички или mysql_real_escape_string()
щене работа! И никога не го използвайте за имена на колони/таблици или бази данни, а само за стойности.
Вижте:тези въпроси за повече информация:
SQL инжекция като цяло:Как става SQL инжекцията от "Таблиците на Боби" " XKCD комична работа?
защита срещу SQL инжекция при използване на имена на динамични таблици:Как да предотвратим SQL инжектиране с динамични имена на таблици?