⊗ppPmFmOFH 299 of 447 menu

Procesarea formularului într-un singur fișier PHP

În lecția precedentă, formularul nostru era plasat pe o pagină, dar era trimis pe altă pagină. De fapt, acest lucru nu este obligatoriu. Dacă lăsăm atributul action gol sau îl eliminăm complet, formularul va fi trimis către aceeași pagină.

Cum va funcționa: la prima accesare a paginii vom completa formularul cu date și vom apăsa butonul. După aceea, pagina se va reîmprospăta și codul său se va executa din nou, dar de data aceasta cu datele din formular.

Să ne uităm la un exemplu. Să presupunem că avem într-un singur fișier un formular și procesarea lui:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

La prima accesare a paginii, funcția var_dump va afișa un array gol. Iar după trimiterea formularului va afișa deja datele formularului. Adică prima dată $_GET va fi gol, iar a doua oară - va conține datele formularului.

Acest lucru poate duce la probleme. Să presupunem, de exemplu, că vom introduce numere în formular și vrem să afișăm suma acestor numere pe ecran:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

În acest caz, la prima accesare a paginii vom vedea erori PHP, legate de faptul că array-ul $_GET este gol, iar noi accesăm elementele sale.

Aici trebuie spus că este posibil ca erorile dvs. să nu apară în browser. În acest caz verificați dacă afișarea erorilor PHP este activată, de asemenea asigurați-vă că este prima accesare a paginii și în bara de adrese nu există date din formular.

Să remediam problema. Pentru aceasta vom adăuga o condiție în care vom verifica dacă formularul a fost trimis.

De exemplu, putem verifica dacă $_GET este nevid. Dacă $_GET nu este gol - atunci formularul a fost trimis și putem executa adunarea. În caz contrar, este încă prima accesare a paginii și adunarea nu va fi executată. Iată codul corectat:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Întrebați utilizatorul despre numele de familie, prenume și patronimic. După trimiterea formularului, afișați pe ecran datele introduse.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge