Ovaj put ćemo da radimo na web serveru DIREKTNO.

 - slika: veza od korisnika do web servera. Ispod piše: Web server je softver koji korisnicima šalje web stranice -

Web server koji ćemo da koristimo je Apache i on se nalazi u okviru XAMPP-a.

  • Napomena: u školi u učionici 17 koristimo portable varijantu u verziji 7.4.27, koji se nalazi na D:\xampp

1. Pokrenite XAMPP, i na njemu pokrenite Apache web server (nema potrebe pokretati bilo šta drugo na XAMPP-u)

2. U web root folderu kreirajte vaš folder (npr webAca - folder u kojem se radi ovaj primer)

! web root folder je onaj folder koji je početna web lokacija za vaš web server. !

U našem slučaju, pošto koristimo portable XAMPP, koji se nalazi na D:\xampp, unutar njega se već nalazi folder htdocs koji je web root folder (ako ništa nije menjano od podrazumevanih vrednosti).

Unutar foldera htdocs kreirati folder u kojem će se raditi (webAca).

3. Kreirati html fajl pera.html i u njega postavite samo jedan H1 element: naslov -

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1> Naslov: rad sa formama </h1>
</body>
</html>

4. U web browser-u kucajti: localhost/webAca

Ako je sve ok, trebalo bi da vidite nešto ovako:   

- slika kako to izgleda -

Kucanjem u browseru: localhost smo označili da idemo na lokalni web server, a dodavanjem /webAca znači da idemo u taj folder koji se otvara i prikazuje se šta ima u njemu. Pošto se ni jedan fajl ne zove index, on ne zna odakle da krene, pa samo ispiše koji su sve fajlovi unutra

5. Promenite ime vašeg fajla u index.html i ponovo učitajte stranicu. Sada bi trebalo da vam se vaša stranica automatski učita (i to bez prikaza šta se nalazi u folderu) !

Ako je sve ok, trebalo bi da vidite nešto ovako:   

Znači:

Ako u  folderu ima fajl koji se zove index.html ili index.php tada će ga web browser otvoriti kao početnu stranu !!!

6. U vaš fajl, unutar body tag-a dodajte jednu web formu:

Primer: staviti na formu da se unosi ime korisnika, komentar i neki broj

U web formi treba da se nalaze labele ispred input polja koje korisnik treba da popuni

Dodatno:

  • oko forme treba da se nalazi linija u kojoj piše svrha forme (fieldset, legend)
  • podaci treba da se pošalju u neki drugi fajl ili neku drugu web stranicu
<form action="obrada.php" method = "get">
<fieldset>
<legend> unesite komentar </legend>
 
   <label>Ime:</label>
   <input type="text" name="ime">
<br><br>
   <label>Komentar:</label>
   <input type="textbox" name="komentar">
<br><br>
 <label> broj ponavljanja :</label>
  <input type="number" name="x">
<br><br>
   <button type="submit">Unesi komentar</button>
 
</fieldset>
</form>           
 
  1. Korisnik popunjava formu.
  2. Klikom  dugme, podaci koji su uneseni se šalju u fajl koji je naveden nakon reči action. U našem slučaju to je fajl obrada.php.
  3. Način na koji se podaci šalju je određen atributom method - u prvom delu zadatka koristi se method get !

 Kako se izvršavaju PHP skripte na web serveru?

Obično je nešto ovako:

1 -  klijent (korisnik  koji koristi neki web browser) zahteva stranicu sa servera,
2 -  web-server (program na serveru) prepoznaje da se traži php fajl,
3 -  ne šalje njegov sadržaj klijentu, nego ga izvršava kao program pomoću php modula,
4 -  izlaz nakon izvršenja programa se šalje klijentu kao rezultat zahteva,
5 -  rezultat se prikazuje klijentu na odgovarajući način

Drugim rečima, korisnik ne vidi php kôd, već samo rezultat nakon izvršanja skripte (html na primer)

PHP kôd se sastoji od niza naredbi koje se izvršavaju jedna za drugom. Poslednja naredba ujedno označava i kraj PHP kôda

PHP fajl možete da kreirate u bilo kojem tekst editoru i da mu date ekstenziju .php.

Koji god da se alat koristi u video snimcima, mi ćemo u učionici koristiti VS Code.

Program koji se napiše u PHP-u ne zahteva prevođenje (kompajliranje), nego se interpretira pri svakom izvršavanju.

Ako bi se popunili podaci u formi a da se nema navedeni fajl u koji forma šalje podatke, dobiće se greška!

U ovom primeru, pošto još uvek nije kreiran fajl u koji se šalju podaci, u nastavku su iza dugmića slike, prvo je slika , a posle toga

Slika popunjene forme:
ime: Pera, komentar:?, broj: 2
Odgovor na klik: Not Found

****

7. Kreirati fajl obrada.php

U njemu prvo upisati samo sledeći tekst: "Ovo je fajl gde su stigli podaci"   

- postavljena slika kako izgleda programski kod fajla obrada.php -

E sada, kada se popuni forma i klikne na dugme, otvoriće se ovaj fajl - tj. otvoriće se nova web stranica na kojoj stoji samo poruka koju smo napisali   

 - slika nove stranice sa porukom -

Pošto nam nije cilj samo prikazivanje poruke, već da se podaci koje je korisnik uneo preuzmu u tom fajlu i da se na kraju sa njima nešto i uradi, ovo ipak nije dovollno.

8. U fajlu obrada.php prikazati sve što je korisnik uneo

PHP počinje tagom <?php i završava sa ?>,

Kao i u C#-u, na kraju svake naredbe treba da se nalazi tačka-zarez, i sve petlje i uslovne naredbe isto rade, ali ...

Promenljive moraju da počnu znakom $

Pomoću naredbe echo se u PHP-u prikazuju poruke (tekst, html tagovi, vrednosti promenljivih):

echo "ovo je poruka ";
echo "<br> a iz obrasca smo dobili sledeće podatke: <br>";

Preuzimanje podataka se radi preko super globalnih promenljivih $_GET ili $_POST (u zavisnosti koji se method koristi za prenos podataka)

$ime = $_GET['ime'];
$komentar = $_GET['komentar'];

$x = $_GET['x'];

 A kako da vidimo sve podatke koji su poslati iz forme?

Naredba var_dump(); može da se koristi za prikaz tipa i sadržaja svakog podatka:

var_dump($_GET); // ovime će se prikazati sve što je stiglo u super globalnu promenljivu $_GET.

Sada odgovor na popunjen obrazac izgleda ovako:   

- slika odgovora u php-u -

U prethodnom primeru se vidi da je $_GET u stvari asocijativni niz: iz forme se šalje kao parovi ključ-vrednost. Ključ je name komponente a vrednost je ono što je korisnik uneo pre klika na dugme.

Da bi to malo lepše izgledalo, upotrebićemo tag <pre>: na sledeći način:

echo "<pre>";
var_dump($_GET);
echo "</pre>";

ovde možete videti

Ovo je fajl gde su stigli podaci      
<?php
echo "ovo je poruka ";
echo "<br> a iz obrasca smo dobili sledeće podatke: <br>";
$ime = $_GET['ime'];
$komentar = $_GET['komentar'];
$x = $_GET['x'];
echo "<pre>";
var_dump($_GET);
echo "</pre>";
?>
      
- slika kako to izgleda u web browseru -

Unutar echo naredbe mogu da se dodaju i VREDNOSTI PROMENLJIVIH, na više od jednog načina:

1. način: koristiti tačku za spajanje stringova:

echo "<br>korisnik sa imenom ".$ime." je napisao sledeći komentar : ".$komentar."<br>";

2. način: unutar stringa oko kojeg su dvostruki navodnici mogu da se navedu imena promenljivih čije vrednosti će biti prikazane:

echo "<br>Korisnik sa imenom $ime je napisao sledeći komentar: $komentar <br>"; 

Podzadatak:

 ispod svega ovoga, ispisati korisnika i njegov komentar onoliko puta koliki je broj unesen u trećem polju .

for($i=0; $i<$x; $i++)
{
echo "poruka br. $i -> korisnik $ime je napisao komentar > $komentar <br>";
}
Ovo je fajl gde su stigli podaci       

<?php
echo "ovo je poruka ";
echo "<br> a iz obrasca smo dobili sledeće podatke: <br>";
$ime = $_GET['ime'];
$komentar = $_GET['komentar'];
$x = $_GET['x'];

echo "<pre>";
var_dump($_GET);
echo "</pre>";
echo "<br>korisnik sa imenom ".$ime." je napisao sledeći komentar : ".$komentar."<br>";
echo "<br>Korisnik sa imenom $ime je napisao sledeći komentar: $komentar <br>";
for($i=0; $i<$x; $i++)
{
   echo "poruka br. $i -> korisnik $ime je napisao komentar > $komentar <br>";
}
?>
            

**************************************************************************************
Kada se koristi method="get" tada se klikom na dugme podaci šalju ka navedenom fajlu i u URL liniji se vidi sve što se šalje ! Podatke preuzimate pomoću $_GET
Kada se koristi method="post" tada se klikom na dugme podaci šalju ka navedenom fajlu i tada se u URL-u ne vidi ništa.  Podatke preuzimate pomoću $_POST.
 
Podzadatak: Kao vežbu uraditi ovaj zadatak ali da je method+"post"
**************************************************************************************
Last modified: Wednesday, 29 October 2025, 8:59 AM