nav_dugme codeBlog codeBlog
  • početna Početna stranica
  • Sačuvani članci Sačuvani članci
  • Članci
     (spisak)
  • Kontakt
Povratak na vrh stranice

Info & povezani članci Info o članku - dugme

Info

trejler_sat Datum objave: 09.02.2021.

trejler_dokument Jezici: PHP

trejler_teg_narandzasti Težina: 6/10

PHP
internet
post
web server
localhost
formular
backend
fullstack
teorija

Tema: PHP

Uvod u PHP i backend programiranjePovezivanje skripti sa MySql bazama podatakaTutorijal - Kreiranje forme za prijavu korisnika$_GET - Prosleđivanje podataka preko URL-a ($_GET)$_SESSION - Direktno prosleđivanje podataka između stranicaTutorijal - Ažuriranje praznih kolona u bazi podataka

Povezani članci

Uvod u web dizajn - 1. deo - Početni koraciPokretanje lokalnog web serveraUvod u relacione baze podataka i SQLUvod u Node.jsUvod u PythonStruktura web adresa i pristup internet stranicamaŠablonske niske u programskim jezicimaHTTP statusni kodoviLokalno skladištenje podataka browsera (sessionStorage, localStorage, cookies)Asinhrono programiranje u JavaScriptuASCII, UNICODE i UTF - Predstavljanje znakova na računarimaGNU/Linux - 1. deo - Uvod
Svi članci
The only way to go fast, is to go well.
Robert C. Martin

PHP - Prosleđivanje podataka preko HTML forme ($_POST)

Facebook LinkedIn Twitter Viber WhatsApp E-mail
zoom_plus zoom_minus bookmark
početna > Članci > Teorija

Uvod

U prethodnom članku upoznali smo se sa opštim principima za razmenu podataka između PHP skripti, a glavna tema članka bila je upotreba superglobalne promenljive $_GET. Na kraju smo pažnju posvetili razlikama između dva najpopularnija protokola za razmenu podataka (GET i POST), i zaključili smo da se protokol GET - zbog svoje otvorenosti - u praktičnom smislu ne sme koristiti za prosleđivanje osetljivih informacija.

Ovoga puta osvrnućemo se na postupak za prosleđivanje podataka preko protokola POST (i dalju obradu preko superglobalne promenljive $_POST).

Superglobalna promenljiva $_POST

Podaci koji su osetljivi (ili jednostavno ne treba da postanu deo URL-a), PHP skriptama se prosleđuju preko HTTP protokola POST. *

U praktičnom smislu (pri izradi sajtova), prenos podataka podrazumeva upotrebu dve stranice:

  • jedna stranica sadrži HTML formu preko koje će podaci biti učitani i prosleđeni
  • druga stranica (PHP skripta), prima i obrađuje podatke

* POST je HTTP protokol preko koga se od servera zahteva da prihvati prosleđene podatke (tipično, zarad upisa u bazu podataka).

HTML forma

Za početak, kreiraćemo dokument index.php (tj. stranicu sa formom preko koje će podaci biti prosleđeni). *

		
<!DOCTYPE html>
<html>
	<head>
		<title>PHP - Prosleđivanje preko forme</title>
		<meta charset='UTF-8'/>
		<link rel='stylesheet' type='text/css' href='stil.css'>
	</head>
	
	<body>
		<form method='post' action='obrada.php'>
			<input type='text' id='forma_ime' name='forma_ime'/>
			<input type='text' id='forma_prezime' name='forma_prezime'/>
			<input type='text' id='forma_email' name='forma_email'/>
			<input type='submit' value='Prosleđivanje podataka'/>
		</form>	
	</body>
</html>
		
	
Slika 1. HTML forma za prosleđivanje podataka.

Da pojasnimo i detalje sa kojima se do sada nismo susretali:

  • atribut method (unutar taga <form>), definiše način prosleđivanja podataka
  • atribut action određuje koja skripta će biti pokrenuta kada se klikne na dugme submit **
  • tagovi <input> imaju definisane id-ove, međutim, svrha id-ova je povezivanje sa JavaScript-om i CSS-om (a ne sa PHP-om ili nekim drugim backend jezikom)
  • za definisanje budućih indeksa u okviru superglobalne promenljive $_POST, koristi se atribut name (sa odgovarajućim vrednostima iz različitih <input> tagova)

* Još jednom, podsećamo vas da za sve projekte kreirate zasebne foldere, pri čemu ćete koristiti i prepoznatljiva imena za datoteke.

** Poslednje <input> polje, čiji je tip submit, prikazuje se i funkcioniše kao dugme za prosleđivanje (podaci iz forme prosleđuju se skripti *** koja je navedena preko atributa action u tagu <form>)

*** Međutim, ne mora obavezno biti PHP skripta (atribut action zapravo upućuje na URL opšteg tipa, iza koga može biti PHP skripta, ali, može biti i backend aplikacija izrađena preko neke druge tehnologije kao što je Node.js i sl).

Prijem i obrada podataka

Za obradu podataka koristićemo skriptu obrada.php (onako kako je navedeno u HTML formi koju smo prethodno kreirali), pri čemu obe skripte, koje smo do sada kreirali, treba smestiti u isti folder.

Skripta obrada.php ima sledeći sadržaj:

		
<?php
	$ime     = $_POST["forma_ime"];
	$prezime = $_POST["forma_prezime"];
	$email   = $_POST["forma_prezime"];

	echo "Prosledili ste sledeće podatke:<br><br>";
	echo $ime . " " . $prezime . "<br>";
	echo $email . "<br>";
?>
		
	
Slika 2. - PHP skripta za obradu podataka koji su primljeni preko protokola POST.

Kao što vidimo,osnovni princip prijema i obrade podataka (preko asocijativnih nizova), isti je kao kada smo koristili superglobalnu promenljivu $_GET.

Takođe, buduće da i u ovom slučaju mogu nastati problemi ukoliko pokušamo da pristupimo indeksima koji nisu definisani (ili ukoliko se desi da preko protokola POST ne budu uopšte prosleđeni podaci), potrebno je koristiti već poznati mehanizam provere, preko funkcije isset:

		
<?php
	$uslov = isset($_POST["forma_ime"]) &&
	         isset($_POST["forma_prezime"]) &&
	         isset($_POST["forma_email"]);

	if (!$uslov) {
		echo "Greška! Podaci sa forme nisu prosleđeni ";
		echo "u odgovarajućem formatu.";
		exit();
	}

	$ime     = $_POST["forma_ime"];
	$prezime = $_POST["forma_prezime"];
	$email   = $_POST["forma_email"];

	echo "Prosledili ste sledeće podatke:<br><br>";
	echo $ime . " " . $prezime . "<br>";
	echo $email . "<br>";
?>
		
	
Slika 3. - Skripta za obradu podataka koji su primljeni preko protokola POST, dopunjena uslovom koji prekida izvršavanje skripte ukoliko podaci nisu prosleđeni.

Probajte, za vežbu, da sami kreirate skripte i prosledite podatke preko HTML forme.

Kratak rezime ....

Da rezimiramo ukratko:

  • protokol POST koristi se (pre svega), onda kada treba preneti osetljive informacije (ili bilo koje druge podatke koji ne treba da postanu deo URL-a)
  • u HTML formi praktično se definišu budući indeksi niza $_POST (preko atributa name u <input> poljima)
  • za proveru prisutnosti prosleđenih podataka (prilikom prijema podataka u PHP skripti za obradu), koristi se funkcija isset

U sledećem nastavku serijala o PHP-u, pisaćemo o povezivanju PHP skripti sa bazama podataka.

Autor članka Nikola Vukićević Za web portal codeblog.rs
Napomena: Tekstovi, slike, web aplikacije i svi ostali sadržaji na sajtu codeblog.rs (osim u slučajevima gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog pismenog odobrenja autora.
© 2020-2025. Sva prava zadržana.
Facebook LinkedIn Twitter Viber WhatsApp E-mail
početna > Članci > PHP - Prosleđivanje podataka preko HTML forme ($_POST)
codeBlog codeBlog
Sajt posvećen popularizaciji kulture i veštine programiranja.
Napomena: Tekstovi i slike na sajtu codeblog.rs (osim u slučajevima, gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog odobrenja autora.
© 2020-2025. Sva prava zadržana.
Facebook - logo
Instagram - logo
LinkedIn - logo
Twitter - logo
E-mail
Naslovna
   •
Uslovi korišćenja
   •
Obaveštenja
   •
FAQ
   •
Kontakt