Metodele GET si POST in PHP
Limbajele de programare server-side (cum sunt pe langa PHP si ASP sau Java) ne dau posibilitatea de a genera continutul paginilor web in mod dinamic in baza cererilor realizate de catre utilizatorii site-ului.
De cate ori nu am utilizat un formular de contact online? Sau de cate ori nu am vazut un URL de acest gen: https://www.multimedia-creations.academy/?s=curs+html?
Atat formularele web cat si url-urile Query String utilizeaza variabilele GET si POST pentru a comunica cu serverul web. In practica cu ajutorul acestor variabile se aduna input-urile utilizatorilor site-ului si se utilizeaza pentru generarea unui anumit comportament.
Metoda POST este utilizata in general pentru formularele web iar metoda GET este utilizata in general pentru QueryString.
Variabila $_GET
Utilizand metoda GET datele se vor regasi in URL-ul paginii web. In interiorul adresei URL vom regasi semnul intrebarii (?) ca in exemplul de mai sus, urmat de datele organizate pe modelul perechilor nume/valoare. Daca avem mai multe perechi de nume/valoare le vom desparti prin semnul (&) ca in acest exemplu de QueryString: https://www.multimedia-creations.academy/?s=html&tag=css unde s cauta textul “html” iar tag=css restrange cautarea doar la articolele ce contin cuvantul “html” si prezinta tag-ul css.
Pentru a vedea mai in detaliu cum functioneaza metoda GET vom vedea cum este redat acest url http://www.dana-damoc.eu/tutoriale.php?pag=dw_ro unde:
- tutoriale.php este o pagina dinamica ce poate vizualiza tutorialele din varii categorii denumite (dw_ro pentru tutorialele din categoria Dremweaver Romana, ps_ro pentru tutorialele din categoria Photoshop Romana iar ai_ro tutorialele din categoria Illustrator Romana);
- continutul paginii tutoriale.php se va schimba in functie de cererea (query) pe care o realizam, pentru url-ul de mai sus vom viziona tutorialele din categoria Dreamweaver Romana.
PHP memorizeaza datele prin intermediul QueryString in interiorul variabilei $_GET. In cazul paginii nostre vom proceda in urmatorul mod pentru a recupera valoarea ceruta in interiorul paginii tutoriale.php si a o include cu ajutorul functiei include:
<?php if($_GET['pag'] == 'dw_ro') include('Tutoriale-Dreamweaver-Romana.php'); if($_GET['pag'] == 'ps_ro') include('Tutoriale-Photoshop-Romana.php'); if($_GET['pag'] == 'ai_ro') include('Tutoriale-Illustrator-Romana.php'); ?>
Pentru a afisa pagina dorita in interiorul paginii principale tutoriale.php am utilizat deci variabila $_GET urmata de paranteze patrate in interiorul carora am scris numele parametrului ce trebuie recuperat. $_GET este, ca si $_POST un array superglobal care poate fi chemat in orice punct al documentului nostru.
Pentru a incheia analiza codului de mai sus facem precizarea ca numele parametrului ‘pag’ il vom da variilor link-uri :
- pentru link-ul ce incarca pagina cu tutorialele Dreamweaver in interiorul paginii principale tutoriale.php vom scrie in acest mod: <a href=”?pag=dw_ro”>Tutoriale Dreamweaver</a>
- pentru link-ul ce incarca pagina cu tutorialele Photoshop in interiorul paginii principale tutoriale.php vom scrie in acest mod: <a href=”?pag=ps_ro”>Tutoriale Photoshop</a>
- pentru link-ul ce incarca pagina cu tutorialele Illustrator in interiorul paginii principale tutoriale.php vom scrie in acest mod: <a href=”?pag=ai_ro”>Tutoriale Illustrator</a>
Variabila $_POST
Metoda POST este utilizata pentru trimiterea datelor la o aplicatie PHP prin intermediul de exemplu a unui formular in HTML. Formularele in HTML sunt continute in interiorul tag-ului <form>.
Tag-ul <form> trebuie sa prezinte doua atribute fundamentale “method” si “action”:
- atributul “method” determina metoda cu care datele sunt trimise la server, aceasta poate fi GET sau POST (in general pentru formulare se utilizeaza metoda POST);
- atributul “action” care ca si valoare are parcursul spre aplicatia la care vor fi trimise datele.
Exemplu de formular de contact:
<form method=”POST” action=”pagina-contact.php”> Numele tau: <input tyle=”text” name=”nume”> <input type=”submit” name=”submit” value=”Trimite”> </form>
Spre deosebire de metoda GET, metoda POST trimite datele prin intermediul cererii HTTP pe care browser-ul o trimite server-ului, in schimb ce metoda GET trimitea datele prin intermediul QueryString in mod vizibil in URL utilizatorilor.
Revenind la formularul de contact va trebui sa recuperam valoarea din campul “nume”, astfel vom utiliza variabila $_POST. In interiorul fisierului pagina-contact.php (pe care l-am dat ca si parametru pentru atributul action al formularului) vom avea urmatoarea expresie:
<?php // Recuperarea valorii parametrului “nume” $nume_utilizator = $_POST[‘nume’]; //Dupa recuperarea valorii o vom reda in pagina prin instructiunea echo echo “Buna” . $nume_utilizator; ?>
Nu sunt comentarii