Cauchy - Szkoła Myślenia www.cauchy.pl//systemy/php-mysql/wprowadzanie-danych-do-bazy-mysql/     |     Dodaj do ulubionych07 grudzień 2019

Łamigłówki podstawowa

|

Przedszkolaki

|

Kolorowanki

|

Rebusy

|

Krzyżówki

|

Wykreślanki

|

Algorytmy

|

Zabawy

Matury z lat 2002 - 2005. Zadania, rozwiązania zadań, schemat punktacji

Poprzednie PoprzednieDo góry, menu nadrzędne, lista zadań Lista wszystkich tematówNastępne Następne

Wprowadzanie danych do bazy mysql

Skrypty PHP, mySQL

Poniżej znajdziesz przykładowy kod PHP wraz ze stroną www, który wprowadza dane do bazy mysql. Użytkownik podaje dane w formularzu a następnie zapamiętywane są one w bazie mysql.
W poniższym przykładzie dodajemy nowego użytkownika do listy dystrybucyjnej newslettera.
Uwagi do programu
Cały kod zawiera dokładne komentarze przy każdej instrukcji więc łatwo go zrozumieć/przerobić.
Program wykorzystuje bazę danych mysql do przechowywania danych o użytkownikach newslettera (imię, nazwisko, mail). Całość napisana jest w języku PHP więc jest wymagana obsługa PHP oraz mysql przez serwer www.
Jeden adres – dwie funkcje
Ciekawą rzeczą w poniższym programie jest, że ta sama strona (ten sam adres www)
  • wyświetla formularz gdzie użytkownik podaje swoje dane by zapisać się na listę dystrybucyjną newslettera
  • dodaje nowego subskrybenta do bazy
Na pierwszy rzut pod jednym adresem www nie można zrealizować dwóch powyższych akcji.
Wyjaśnienie metody: mały trick
Trick polega na formularzu html i zmiennych języka PHP odnoszących się do formularzy html. W naszym przypadku kluczową zmienną jest $_POST["mail"], która zawiera mail subskrybenta. Mamy następujące możliwości:
  1. Zmienna $_POST["mail"] nie jest ustawiona
    Oznacza to, że formularz nie był wyświetlany i nasza strona jest wyświetlana po raz pierwszy.
    Wówczas po prostu wyświetlamy formularz wprowadzania danych do bazy (zapisywania się na listę newslettera).
  2. Zmienna $_POST["mail"] jest ustawiona
    Oznacza to, że formularz został zaakceptowany i ktoś podał swoje dane (między innymi mail).
    Teraz wystarczy dodać nowego subskrybenta do bazy bez wyświetlania formularza jeśli podano poprawne dane lub wyświetlić komunikat o błędzie i ponownie wyświetlić formularz wprowadzania danych (zapisywania się na listę dystrybucyjną) jeśli wprowadzone dane nie są poprawne.
Proste, prawda?! Wystarczy, żeby formularz przekierowywał na samego siebie jak w kodzie poniżej.
Krótki opis sposobu działania programu
Użytkownik wprowadza do formularza swoje dane
  • Imię
  • Nazwisko
  • Mail
Po zatwierdzeniu formularza, program (skrypt) PHP wprowadza podane przez użytkownika dane do bazy mysql (tabeli newsletter) w sposób jak poniżej.
  1. Najpierw program łączy się do serwera mysql podając login / hasło
  2. Wybierana jest baza danych w której znajduje się tabela newsletter
  3. Program sprawdza czy ustawiona jest zmienna $_POST["mail"]
    Inaczej mówiąc program sprawdza, czy strona była wyświetlana wcześniej i został wciśnięty przycisk "Zapisz się!" w formularzu.
    1. Jeśli zmienna $_POST["mail"] nie jest ustawiona to znaczy, że przycisk "Zapisz się!" w formularzu newslettera nie był wciśnięty. Czyli jesteśmy na naszej stronie po raz pierwszy.
      W tej sytuacji program po prostu zachęca do zapisania się na listę dystrybucyjną newslettera i wyświetla formularz logowania, a następnie kończy się wyświetlanie strony.
    2. Jeśli zmienna $_POST["mail"] jest ustawiona to znaczy, że jesteśmy na naszej stronie jako przekierowanie z formularza logowania (ktoś wcisnął przycisk "Zapisz się!" w formularzu).
      Skoro ktoś wcisnął przycisk "Zapisz się!" w formularzu to znaczy, że pole mail formularza ($_POST["mail"]) ma jaką wartość jak również pole haslo ($_POST["haslo"]) ma jakąś wartość (podobnie jak pozostałe pola formularza).
      Jeśli wprowadzone do formularza dane mają sens to wprowadzamy je do bazy danych i wypisujemy komunikat gratulacyjny. Jeśli nie to wyświetlamy informacje o błędzie i ponownie wyświetlamy formularz newslettera. Strona kończy działanie.
Czy użytkownik może podejrzeć nasz kod?
Pojawia się pytanie czy użytkownik może podejrzeć nasz kod między innymi:
  1. Poznać login/hasło do serwera mysql
  2. Strukturę naszej bazy danych
Odpowiedź na obydwa pytania jest: NIE.
Użytkownik nie będzie widział kodu php. Użytkownik będzie widział kod html utworzony na serwerze przez nasz program / skrypt PHP.
A w kodzie html nie będzie żadnych informacji o logowaniu do serwera mysql czy też o strukturze bazy danych, tabelach mysql.
W kodzie html będzie tylko to, co ma się wyświetlić użytkownikowi.
Cała logika jest zakryta dla użytkownika.
Kod programu
Poniżej znajduje się link do pliku wstawiającego dane do bazy danych mysql (tabeli newsletter) (jak omówiono wcześniej):
Po wrzuceniu do serwisu www strona i zawarty w niej program będą od razu działać. Jedynie trzeba zmienić:
  1. Adres ip serwera mysql
  2. Login do bazy danych mysql
  3. Haslo do bazy danych mysql
  4. Nazwę bazy danych zawierającą tabelę newsletter
  5. Upewnić się, że baza danych zawiera tabelę newsletter z następującymi polami:
    • UID
    • Imie
    • Nazwisko
    • Mail
Poniżej pełny listing programu jak w pliku do pobrania:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 <head>
 <title>Serwis ABC</title>
 <meta http-equiv=content-type content="text/html; charset=iso-8859-2">
 <meta http-equiv="Content-Language" content="pl">
 </head>
 
 <body>
 <?php 
 
 ////////////////////////////////////////////////////////////
 //Przykład kodu wprowadzającego dane do bazy mysql
 //Sposob dzialania kodu:
 //Kod obrazuje zapisywanie sie na listy dystrybucyjna newslettera
 //Po otwarciu strony uzytkownik widzi formularz gdzie musi podac:
 //   * imie
 //   * nazwisko
 //   * adres mail
 //Po kliknieciu przycisku "Zaloguj" kod prawdza czy podane sa wszystkie
 //pola (imie, nazwisko, mail) oraz usuwa biale znaki z poczaku i konca
 //kazdego pola
 //   Jesli podane sa wszystkie pola to sa one wprowadzane do bazy mysql
 //   Jesli nie sa podane wszystkie pola to wyswietlana jest informacja
 //       o bledzie i wyswietlany jest ponownie formularz zapisu na
 //       newsletter
 //Ograniczenia programu
 //  1. Program nie sprawdza czy uzytkownik juz istnieje w bazie
 //  2. Program nie sprawdza czy adres mail ma poprawna skladnie
 //Wymagania
 //  1. Zalozona baza mysql na serwerze
 //  2. Tabela newsletter w bazie mysql z polami imie, nazwisko, mail
 ////////////////////////////////////////////////////////////
 
 ////////////////////////////////////////////////////////////
 //Definicje zmiennych
 
 //adres ip serwera mysql który zawiera bazę danych i tabele z osobami 
 //zapisanymi na listę dystrybucyjna newslettera
 $adres_ip_serwera_mysql_z_baza_danych = '127.0.0.1';
 
 //nazwa bazy danych z tabelą newsletter zawierającą osoby zapisane na 
 //listę dystrybucyjna newslettera
 $nazwa_bazy_danych = 'moja_baza';
 
 //nazwa uzytkownika bazy danych $nazwa_bazy_danych
 $login_bazy_danych = 'user_test';
 
 //haslo uzytkownika bazy danych $nazwa_bazy_danych
 $haslo_bazy_danych = 'haslo_test';
 
 //Formularz umozliwiajacy dopisanie się do bazy danych czyli zapisanie 
 //się na liste dystrybucyjna newslettera
 //Formularz bedzie pokazywany gdy strona wyswietlana pierwszy raz 
 //lub gdy użytkownik poda bledne lub niepelne dane
 $formularz_dodaj_uzytkownika = '
 <FORM method="POST" action="">
 Ime: <INPUT type="text" name="imie">
 <br />Nazwisko: <INPUT type="text" name="nazwisko">
 <br />Mail: <INPUT type="text" name="mail">
 <br /><INPUT type="submit" value="Zapisz się!">
 </FORM>
 ';
 
 ////////////////////////////////////////////////////////////
 //Kod programu
 
 //Ustanawiamy połączenie z serwerem mysql
 if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,
 
$login_bazy_danych, $haslo_bazy_danych) ) { echo 'Nie moge polaczyc sie z baza danych'; exit (0); } //Wybieramy baze danych na serwerze mysql ktora zawiera tabele //newsletter gdzie sa dane osob z listy dystrybucyjnej if ( !mysql_select_db($nazwa_bazy_danych) ) { echo 'Blad otwarcia bazy danych'; exit (0); } //Sprawdzamy czy formularz został zaakceptowany - czyli czy zmienna //$_POST["mail"] jest zdefiniowana //Jesli zmienna $_POST["mail"] nie jest zdefiniowana to strona jest //wyswietlana po raz pierwszy i wyswietlimy formularz dodania do //newslettera //Jesli zmienna $_POST["mail"] jest zdefiniowana to strona byla //wczesniej wyswietlana i formularz dodania do newslettera zostal //zaakceptowany. Musimy sprawdzic poprawnosc danych (poprawne to //dodajemy nowa osobe na liste dystrybucujna, niepoprawne to wyswietlamy //komunikat bledu i ponownie wysiwetlamy formularz) if ( isset($_POST["mail"]) ){ //Jesli zmienna $_POST["mail"] jest zdefiniowana to znaczy, ze nasza //strona jest wyswietlana po raz kolejny. Wczesniej ktos wypelnil //formularz i wcisnal przycisk "Zapisz się!" //Porzadkujemy dane wprowadzone przez uzytkownika SkorygujZmienneZFormularza($imie,$nazwisko,$mail); //Sprawdzamy czy uzytkownik podal poprawne dane $czy_poprawne_dane = SprawdzPoprawnoscDanych ($imie, $nazwisko,
$mail); if ($czy_poprawne_dane == "dane_ok") { //Jesli podane przez uzytkownika dane sa ok to wprowadzamy je do tabeli //Definiujemy zapytanie do tabeli newsletter wpisujace dane nowego //subskrybenta $zapytanie = "INSERT INTO `newsletter` (`UID`, `Imie`, `Nazwisko`,
`Mail`) "; $zapytanie .= "VALUES ('', '$imie', '$nazwisko', '$mail')"; //Wykonujemy zapytanie na bazie mysql $wynik_zapytania = mysql_query($zapytanie); //Sprawdzamy cz baza danych zwrocila blad if (!$wynik_zapytania) { //Jesli baza danych zwrocila blad to wyswietlamy komunikat o problemie //z baza danych echo("<br />Nie moge dodać rekordu do bazy!<br /><br />"); } else { //Jesli dodanie subskrybenta sie udalo to wyswietlamy gratulacje oraz echo "Gratulacje!!!"; echo "<br />Właśnie zostałeś zapisany na listę dystrybucyjną
naszego wspaniałego newslettera!!!!"; } } else { //Jesli podane przez uzytkownika dane sa niepoprawne to informujemy //o bledzie i ponownie wysiwetlamy komunkat echo "Wprowadziles niepoprawne dane do formularza. Być może nie wszystkie pola sa wypelnione"; echo "<br />Spróbuj ponownie:"; echo $formularz_dodaj_uzytkownika; } } else { //Jesli nasza strona jest wyswietlana po raz pierwszy (zmienna //$_POST["mail"] niejest zdefiniowana) to // * zachecamy do zapisania sia na liste newslettera // * wyswietlamy formularz pozwalajacy pdoac nowego subskrybenta echo "Zapisz się <strong>TERAZ</strong> na listę dystrybucyjną naszego wspaniałego newslettera."; echo $formularz_dodaj_uzytkownika; } //Zamykamy połączenie z bazą danych if ( !mysql_close() ) { echo 'Nie moge zakonczyc polaczenia z baza danych'; exit (0); } //////////////////////////////////////////////////////////// //Dodatkowe funkcje //////////////////////////////////////////////////////////// //// Funkcja SkorygujZmienneZFormularza(&$imie,&$nazwisko,&$mail) //// //Funkcja porządkuje dane wprosprawdzone do formularza: //Jesli pole nie zostalo wproawadzone to zmienna ma pusta wartosc ("") //Jesli pole zostalo wproawadzone to ma obcinane puste spacje z obu //stron ////////////////////////////////////////////////////////////////////// function SkorygujZmienneZFormularza(&$imie,&$nazwisko,&$mail) { if ( isset($_POST["imie"]) ) $imie = trim($_POST["imie"]); else $imie = ""; if ( isset($_POST["nazwisko"]) ) $nazwisko = trim($_POST["nazwisko"]); else $nazwisko = ""; if ( isset($_POST["mail"]) ) $mail = trim($_POST["mail"]); else $mail = ""; } //////////////////////////////////////////////////////////// //// Funkcja SprawdzPoprawnoscDanych ($imie, $nazwisko, $mail) //// //Funkcja sprawdza czy podane przez uzytkownika dane sa poprawne czyli //czy nie sa puste //Jesli ktorekolwiek pole $imie lub $nazwisko lub $mail jest puste to //zwracany jest komunikat o niepoprawnych danych (zle_dane) //Jesli wszystkie pola $imie lub $nazwisko lub $mail są wypełnione to //zwracany jest komunikat o poprawnych danych (dane_ok) //////////////////////////////////////////////////////////////////////// function SprawdzPoprawnoscDanych ($imie, $nazwisko, $mail) { if ( ($imie=="") || ($nazwisko=="") || ($mail=="") ) return "zle_dane"; return "dane_ok"; } ?> </body> </html>
Przykłady działania programu
Formularz zapisywania się na listę dystrybucyjną newslettera
Wprowadzanie danych do bazy mysql - przykład php
Informacja o poprawnym dodaniu do bazy (na listę dystrybucyjną newslettera)
Wprowadzanie danych do bazy mysql 2 - przykład php
Informacja o podaniu błędnych danych w formularzu
Wprowadzanie danych do bazy mysql 3 - przykład php
Używaj kodu dowolnie
Kod zawarty w tym artykule możesz wykorzystywać dowolnie, bez żadnych zastrzeżeń. Jedyna prośba to umieszczenie linku do niniejszej strony:
   http://www.cauchy.pl/systemy/php-mysql/wprowadzanie-danych-do-bazy-mysql
na przykład w formie jak poniżej:
<a href="http://www.cauchy.pl/systemy/php-mysql/wprowadzanie-danych-do-bazy-mysql/">Przykład kodu PHP wprowadzającego dane do bazy mysql (gotowa strona www)</a>

PoprzednieDo góry, menu nadrzędne, lista zadańNastępne
PoprzednieLista wszystkich tematówNastępne


Nie znalazłeś szukanej treści?
Poszperaj w serwisie cauchy.pl lub w sieci.
Google
 

Newsletter

Tak, chcę otrzymywać bezpłatny newsletter:

Imię:

Email:

 
 
Korepetycje, korepetycje z języka polskiego
 
Tapeta ze wzorami dotyczącymi logarytmów i funkcji logarytmicznej
 
(C) 2010 Szkoła Myślenia im. A. L. Cauchy        Napisz Napisz        Praca     Reklama
   korepetycje z matematyki