27.10. PHP i rad sa HTML formama - verzija sa malko objašnjenja
Uvod
PHP je skraćenica od "PHP: Hypertext Preprocessor" i predstavlja serverski skript jezik koji se koristi za izradu dinamičkih web stranica.
To znači da PHP omogućava da stranica ne bude samo statičan HTML dokument, već da se njen sadržaj menja u zavisnosti od korisnikovog unosa, vremena, podataka iz baze i mnogih drugih faktora.
Kada korisnik otvori stranicu koja sadrži PHP kod, njegov web browser ne vidi taj PHP kod direktno.
Umesto toga, server (npr. Apache koji dolazi u sklopu XAMPP-a) izvršava PHP skriptu i šalje rezultat (HTML) nazad browseru.
1. Kako PHP funkcioniše
Proces izgleda ovako:
-
Korisnik pošalje zahtev pomoću browsera (npr. otvara
http://localhost/pozdrav.php). -
Web server prepoznaje da je u pitanju PHP fajl.
-
Server prosleđuje taj fajl PHP interpreteru.
-
PHP interpreter izvršava kod i generiše rezultat u obliku običnog HTML-a.
-
Server šalje HTML nazad browseru.
Dakle, PHP kod se nikada ne vidi u browseru — korisnik vidi samo ono što je PHP „odštampao“ pomoću naredbi kao što je echo.
2. Gde se nalazi PHP kod u dokumentu
PHP kod se u HTML dokumentu piše unutar posebnih oznaka:
<?php
// ovde ide PHP kod
?>
Sve što se nalazi između <?php i ?> interpretira se kao PHP, dok ostatak fajla može biti običan HTML.
Zbog toga PHP može da „živi“ zajedno sa HTML-om u istoj datoteci.
Na primer:
<!DOCTYPE html>
<html>
<body>
<h2>Primer PHP koda unutar HTML-a</h2>
<?php
echo "Zdravo svete!";
?>
</body>
</html>
Rezultat u browseru biće samo:
Zdravo svete!
dok se PHP deo neće videti u izvornom HTML-u.
Osnovne osobine PHP-a
PHP sintaksa je veoma slična jezicima kao što su C i C#, što znači da je većina operatora, kontrola toka i pravila poznata učenicima koji su te jezike učili ranije.
1. Promenljive
U PHP-u svaka promenljiva počinje znakom $, na primer:
$ime = "Petar";
$broj = 10;
PHP je slabo tipiziran jezik, što znači da ne mora unapred da se deklariše tip promenljive.
Tip se određuje automatski u zavisnosti od vrednosti.
$a = 5; // integer
$b = 3.14; // float
$c = "tekst"; // string
2. Ispis podataka
Za ispis na stranicu najjednostavnije je da se okristi samo naredba echo:
echo "Zdravo svete!";
echo "<h1>Naslov</h1>";
PHP automatski šalje rezultat browseru kao HTML, pa zato u echo mogu da se koriste i HTML oznake.
HTML forma i komunikacija sa PHP-om
1. Šta je HTML forma
HTML forma omogućava korisniku da unese podatke — tekst, broj, izbor opcije, lozinku itd.
Ti podaci se zatim šalju serveru na obradu.
Primer jednostavne forme:
<form action="obrada.php" method="get">
Unesi ime: <input type="text" name="ime">
<input type="submit" value="Pošalji">
</form>
Ova forma ima dva bitna atributa:
-
action– određuje koja PHP fajl će primiti podatke, -
method– određuje na koji način se podaci šalju (GET ili POST).
2. Metoda GET
Metoda GET šalje podatke tako što ih prikazuje u URL adresi.
Na primer, ako korisnik unese ime „Petar“ i pošalje formu, URL može izgledati ovako:
obrada.php?ime=Petar
U PHP-u se vrednost čita pomoću superglobalne promenljive $_GET.
$ime = $_GET["ime"];
echo "Zdravo, $ime!";
Superglobalne promenljive su ugrađene PHP promenljive koje su uvek dostupne, bez obzira gde se nalaze u kodu.
Najpoznatije su: $_GET, $_POST, $_SERVER, $_FILES, $_SESSION, itd.
3. Metoda POST
Metoda POST šalje podatke „nevidljivo“ — ne prikazuju se u adresnoj liniji, već u telu HTTP zahteva.
Zato se POST koristi kada šaljemo poverljive ili veće količine podataka.
<form action="obrada.php" method="post">
Ime: <input type="text" name="ime"><br>
Prezime: <input type="text" name="prezime"><br>
<input type="submit" value="Pošalji">
</form>
PHP kod za čitanje podataka:
$ime = $_POST["ime"];
$prezime = $_POST["prezime"];
echo "Dobrodošao/la, $ime $prezime!";
4. Razlike između GET i POST
| Osobina | GET | POST |
|---|---|---|
| Vidljivost podataka | Podaci se vide u URL-u | Podaci se ne vide |
| Ograničenje dužine | Da (ograničen broj karaktera) | Ne |
| Pogodno za | Pretrage, linkove | Unos podataka, lozinke |
| Keširanje | Da | Ne |
| Primer | ?ime=Petar |
(nema vidljivih podataka u URL-u) |
Obrada podataka u PHP-u
Nakon što PHP primi podatke iz forme, možemo ih obrađivati kao obične promenljive.
Na primer, ako forma šalje dva broja, možemo ih sabrati:
$b1 = $_POST["broj1"];
$b2 = $_POST["broj2"];
$zbir = $b1 + $b2;
echo "Zbir je: $zbir";
PHP će automatski prepoznati da su to brojevi i izvršiti sabiranje.
Kontrola toka i validacija unosa
1.Validacija – proveravanje da li je unos ispravan
Validacija je jako bitna jer korisnik može ostaviti prazno polje ili uneti tekst na mesto gde se očekuje broj.
Zato najčešće proveravamo unos pomoću if uslova i funkcija kao što su:
-
empty($var)– vraćatrueako je promenljiva prazna, -
is_numeric($var)– vraćatrueako je vrednost broj.
Primer:
if (empty($b1) || empty($b2)) {
echo "Morate uneti oba broja!";
} else if (!is_numeric($b1) || !is_numeric($b2)) {
echo "Unos mora biti broj!";
} else {
echo "Zbir je: " . ($b1 + $b2);
}
2. Upotreba kontrolnih struktura
PHP koristi iste kontrolne strukture kao C:
if ($a > $b) {
echo "a je veće";
} else {
echo "b je veće";
}
ili:
switch($op) {
case "+": $rez = $b1 + $b2; break;
case "-": $rez = $b1 - $b2; break;
case "*": $rez = $b1 * $b2; break;
case "/":
if ($b2 == 0)
echo "Nije dozvoljeno deliti nulom!";
else
echo $b1 / $b2;
break;
}
PHP i HTML zajedno
PHP se najčešće koristi tako da u istom dokumentu generiše HTML sadržaj.
Na primer:
<?php
$ime = $_POST["ime"];
echo "<h2>Dobrodošao/la, $ime!</h2>";
echo "<p>Drago nam je što ste posetili naš sajt.</p>";
?>
PHP se može nalaziti unutar HTML strukture i na više mesta u istoj stranici.
To omogućava da se dinamički generišu elementi kao što su liste, tabele ili poruke.
Primeri
1. Sabiranje brojeva (POST)
<form action="saberi.php" method="post">
Broj 1: <input type="text" name="b1"><br>
Broj 2: <input type="text" name="b2"><br>
<input type="submit" value="Saberi">
</form>
<?php
$b1 = $_POST["b1"];
$b2 = $_POST["b2"];
if (is_numeric($b1) && is_numeric($b2))
echo "Zbir je: " . ($b1 + $b2);
else
echo "Unesi brojeve!";
?>
2. Izračunavanje godina starosti
<form action="godine.php" method="post">
Ime: <input type="text" name="ime"><br>
Godina rođenja: <input type="text" name="godina"><br>
<input type="submit" value="Izračunaj">
</form>
<?php
$ime = $_POST["ime"];
$godina = $_POST["godina"];
$trenutna = date("Y");
$starost = $trenutna - $godina;
echo "<h3>$ime ima $starost godina.</h3>";
?>
Zaključak
PHP je jezik koji omogućava da web stranice postanu interaktivne i dinamične.
HTML sam po sebi može samo da prikaže sadržaj, ali ne može da ga obradi.
Zato se HTML koristi za unos podataka, a PHP za njihovu obradu i prikaz rezultata.
Učenje PHP-a počinje upravo od razumevanja ovog odnosa:
-
HTML forma = način da korisnik pošalje podatke,
-
PHP skripta = deo koji podatke prima i obrađuje.