MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Trimiterea formularelor

Unul dintre principalele moduri de a trimite date unui site web este procesarea formularelor. Formularele reprezintă elemente speciale de marcare HTML, care conțin diverse elemente de intrare - câmpuri de text, butoane, etc.

Și cu ajutorul acestor formulare putem introduce unele date și le putem trimite pe server. Iar serverul va procesa aceste date.

Crearea formularelor constă din următoarele aspecte:

  • Crearea elementului <form><form> în marcare HTML
  • Adăugarea în acest element a unui sau mai multor câmpuri de intrare
  • Stabilirea metodei de trimitere a datelor. Cel mai des se utilizează metodele GET sau POST
  • Stabilirea adresei la care vor fi trimise datele introduse

Cereri POST

Așadar, vom crea un formular nou. Pentru aceasta, definim un nou fișier form.php, în care vom plasa următorul conținut:

<!DOCTYPE html>
<html>
<head>
<title>FDC.COM</title>
<meta charset="utf-8" />
</head>
<body>
<h3>Formular de introducere a datelor</h3>
<form action="user.php" method="POST">
   <p>Nume: <input type="text" name="name" /></p>
   <p>Vârstă: <input type="number" name="age" /></p>
   <input type="submit" value="Trimite">
</form>
</body>
</html>

Atributul action="user.php" al elementului form indică faptul că datele formularului vor fi procesate de scriptul user.php, care se va afla în același director cu fișierul form.php. Iar atributul method="POST" indică faptul că metoda de trimitere a datelor va fi metoda POST.

Acum vom defini fișierul user.php, care va avea următorul conținut:

<?php
$name = "ne definit";
$age = "ne definit";
if(isset($_POST["name"])){
   $name = $_POST["name"];
}
if(isset($_POST["age"])){
   $age = $_POST["age"];
}
echo "Nume: $name <br> Vârstă: $age";
?>

Pentru procesarea cererilor de tip POST în PHP se folosește variabila globală integrată $_POST. Aceasta reprezintă un array asociativ de date transmise prin metoda POST.

Folosind cheile, putem obține valorile trimise. Cheile în acest array sunt valorile atributelor name ale câmpurilor de intrare ale formularului.

De exemplu, deoarece atributul name al câmpului de intrare pentru vârstă are valoarea age (<input type="number" name="age" />), în array-ul $_POST valoarea acestui câmp va fi reprezentată de cheia "age": $_POST["age"]

Și deoarece sunt posibile situații în care câmpul de intrare nu va fi completat, este recomandat să verificăm existența datelor înainte de a le procesa folosind funcția isset(). Dacă variabila este setată, funcția isset() va returna valoarea true.

Acum putem accesa scriptul form.php și introduce în formular unele date:

Iar la apăsarea butonului datele introduse vor fi trimise prin metoda POST scriptului user.php:

Nu este obligatoriu să trimitem datele formularului unui alt script, putem procesa datele formularului în același fișier al formularului. Pentru aceasta, vom modifica fișierul form.php astfel:

<!DOCTYPE html>
<html>
<head>
<title>FDC.COM</title>
<meta charset="utf-8" />
</head>
<body>
<?php
$name = "ne definit";
$age = "ne definit";
if(isset($_POST["name"])){
   $name = $_POST["name"];
}
if(isset($_POST["age"])){
   $age = $_POST["age"];
}
echo "Nume: $name <br> Vârstă: $age";
?>
<h3>Formular de introducere a datelor</h3>
<form method="POST">
   <p>Nume: <input type="text" name="name" /></p>
   <p>Vârstă: <input type="number" name="age" /></p>
   <input type="submit" value="Trimite">
</form>
</body>
</html>

Deoarece în acest caz trimitem datele aceluiași script - adică la aceeași adresă, atributul action al elementului form nu este necesar.

Trebuie menționat că în principiu putem trimite formularele și prin cereri GET, în acest caz pentru obținerea acelorași valori ale formularului se folosește array-ul $_GET, care a fost discutat în tema anterioară:

<!DOCTYPE html>
<html>
<head>
<title>FDC.COM</title>
<meta charset="utf-8" />
</head>
<body>
<?php
$name = "ne definit";
$age = "ne definit";
if(isset($_GET["name"])){
   $name = $_GET["name"];
}
if(isset($_GET["age"])){
   $age = $_GET["age"];
}
echo "Nume: $name <br> Vârstă: $age";
?>
<h3>Formular de introducere a datelor</h3>
<form method="GET">
   <p>Nume: <input type="text" name="name" /></p>
   <p>Vârstă: <input type="number" name="age" /></p>
   <input type="submit" value="Trimite">
</form>
</body>
</html>
← Lecția anterioară Lecția următoare →