Dodawanie rekordów do bazy danych
Poniższy skrypt demonstruje jak wstawić dane z formularza do bazy danych
Na początku tworzymy tabele w bazie SQL
Sprawdzamy czy do pliku przesłane zostały zmienne, jeżeli tak to dodajemy dane jeśli nie to wyświetlamy formularz
Następnie parsujemy dane przesłane z formularza zapobiegnie to możliwości włamania poprzez SQL injection
Łączymy się z bazą danych
Wykonujemy zapytanie insert czyli dodające
Następnie sprawdzamy czy dodanie powiodło się czy też nie
Listing
// Kod SQL do stworzenia tabeli
create table pracownicy
( id int unsigned not null auto_increment primary key,
imie char(50) not null,
nazwisko char(50) not null,
);
<?php
// Sprawdzamy czy do pliku index.php przesłane zostały dane odpowiada za to funkcja empty która sprawdza czy w zmiennej $_POST['temat'] sa jakieś dane
// Poniższa linia oznacza: jeżeli zmienna $_POST['temat'] i $_POST['tresc'] są puste wykonaj działanie
if(empty($_POST['temat'])&&empty($_POST['tresc'])){
// jeżeli do liku nie przesłane zostały żadne dane wyświetlamy formularz
?>
<form action="test.php" method="post">
Imie: <input type="text" value="" name="imie" /><br />
Nazwisko <textarea name="nazwisko"></textarea><br />
<input type="submit" value="Wyslij" />
</form>
<?php
// Jeżeli dane z formularza zostaną wysłane wykona się kod zawarty w klamrach warunku else
}else{
function lacz_bd()
{
$db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');
if (! $db)
return false;
$db->autocommit(TRUE);
return $db;
}
$imie = $_POST['imie'];
$imie = addslashes($imie); // zawsze pamiętajmy aby dane były parsowane. Funkcja addslashes dodaje znak przed cudzysłowami dzięki temu nie musimy się obawiać ze zmienna zaszkodzi naszej bazie.
$nazwisko = $_POST['nazwisko'];
$nazwisko = addslashes($nazwisko);
//połączenie z bazą
$db = lacz_bd();
//zapytanie dodające zmienne $imie i $nazwisko do bazy
$zapytanie = "insert into pracownicy (id, imie, nazwisko) values ('', '$imie', '$nazwisko')";
// wykonanie dodawania do bazy
$wynik = $db->query($zapytanie);
//sprawdzenie czy powiodło się dodawanie
if($wynik) echo 'Dodano nowy rekord';
else echo 'Błąd podczas dodawania';
}
?>
create table pracownicy
( id int unsigned not null auto_increment primary key,
imie char(50) not null,
nazwisko char(50) not null,
);
<?php
// Sprawdzamy czy do pliku index.php przesłane zostały dane odpowiada za to funkcja empty która sprawdza czy w zmiennej $_POST['temat'] sa jakieś dane
// Poniższa linia oznacza: jeżeli zmienna $_POST['temat'] i $_POST['tresc'] są puste wykonaj działanie
if(empty($_POST['temat'])&&empty($_POST['tresc'])){
// jeżeli do liku nie przesłane zostały żadne dane wyświetlamy formularz
?>
<form action="test.php" method="post">
Imie: <input type="text" value="" name="imie" /><br />
Nazwisko <textarea name="nazwisko"></textarea><br />
<input type="submit" value="Wyslij" />
</form>
<?php
// Jeżeli dane z formularza zostaną wysłane wykona się kod zawarty w klamrach warunku else
}else{
function lacz_bd()
{
$db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');
if (! $db)
return false;
$db->autocommit(TRUE);
return $db;
}
$imie = $_POST['imie'];
$imie = addslashes($imie); // zawsze pamiętajmy aby dane były parsowane. Funkcja addslashes dodaje znak przed cudzysłowami dzięki temu nie musimy się obawiać ze zmienna zaszkodzi naszej bazie.
$nazwisko = $_POST['nazwisko'];
$nazwisko = addslashes($nazwisko);
//połączenie z bazą
$db = lacz_bd();
//zapytanie dodające zmienne $imie i $nazwisko do bazy
$zapytanie = "insert into pracownicy (id, imie, nazwisko) values ('', '$imie', '$nazwisko')";
// wykonanie dodawania do bazy
$wynik = $db->query($zapytanie);
//sprawdzenie czy powiodło się dodawanie
if($wynik) echo 'Dodano nowy rekord';
else echo 'Błąd podczas dodawania';
}
?>
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
a gdzie filtracja danych html'a?? co jesli ktos zrobi xss??
artykuł niedopracowany!
autor: akacja | 5187 | 2010-02-15 20:40:12
masz racje skrypcik miał być prosty ale jest narażony na Cross-site scripting ja używam tego po przecinku podajesz dozwolone tagi
autor: igor | 5192 | 2010-02-15 21:12:15
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno