ELEMENTE DE BAZA PHP (Preluarea datelor din html) (PARTEA 6) - Forum

[ Mesaje noi · Membrii · Regulamentul forumului · Căutare · RSS ]
Pagina 1 din 11
Forum » Tutoriale si Resurse (T&R) » T&R php » ELEMENTE DE BAZA PHP (Preluarea datelor din html) (PARTEA 6)
ELEMENTE DE BAZA PHP (Preluarea datelor din html) (PARTEA 6)
GravediggerData: Luni, 2012-10-29, 7:43 PM | Mesaj # 1
Gravedigger
Administrator
Grup: Administratori
Mesaje: 542
Premii: 10
Reputatie: 5
Stare: Offline


Preluarea datelor din formularele HTML


Recapitulare: in tutorialul de HTML la capitolul Formulare am mentionat ca eticheta form are atributele action si method iar fiecare camp din formular avea un name.
action indica fisierul care prelucreaza datele introduse in formular cand este apasat butonul Trimite
method indica modul in care datele sunt trimise spre prelucrare pe server si poate avea valorile: POST cand datele trimise nu sunt vizibile utilizatorului si GET cand datele sunt adaugate la adresa URL. Metoda POST permite trimiterea unei cantitati mai mari de date decat metoda GET.
name este un atribut care identifica datele introduse in fiecare camp al formularului

Sa presupunem ca intr-un formular avem un camp cu name="nume" si method="POST". Fisierul indicat de action va prelua datele introduse in campul "nume" astfel:

$_POST["nume"];
Exemplu: formular cu un camp si scriptul php de preluare a datelor
<form action="exemplu5_1.php" method="POST">
Nume: <input type="text" name="nume"><br>
<input type="submit" value="Trimite">
</form>
/* urmeaza fisierul exemplu5_1.php */
<?php
$nume=$_POST["nume"];
echo $nume;
?>

Verificarea datelor introduse in formular
Pentru a fi siguri ca utilizatorul a completat campurile trebuie sa adaugam scriptului partea de verificare.

Exemplu: folosim acelasi formular dar adaugam partea de verificare
<?php
$nume=$_POST["nume"];
if ($nume=="") {
echo "Campul nume nu este completat";
} else {
echo $nume;
}
?>
Partea de verificare poate avea mai multe conditii simultane.

Exemplu: acelasi formular dar partea de verificare are doua conditii legate prin operatorul OR sau ||
<?php
$nume=$_POST["nume"];
if (($nume=="") || (strlen($nume)<5)) {
echo "Campul nume nu este completat corect";
} else {
echo $nume;
}
?>
Folosind modelele anterioare puteti prelua date si face verificarea pentru toate campurile formularului.

Datele preluate pot fi eventual introduse intr-o baza de date sau prelucrate in vederea trimiterii prin email functie de cerintele aplicatiei.

In afara preluarii datelor putem folosi formularul si pentru upload-ul fisierelor pe server dar cu masurile de precautie necesare pentru a evita eventualele upload-uri de fisiere nedorite pe server.
Pentru upload formularul va contine un camp de tip input cu type="file" iar eticheta form va contine in plus un argument enctype="multipart/form-data".

Exemplu: formular pentru upload fisiere. Folderul in care se face upload trebuie sa permita operatia de scriere. Din motive de securitate acest exemplu nu este activ.
<form method="post" action="exemplu5_4.php" enctype="multipart/form-data">
Fisier pentru upload: <input type="file" name="file"><br>
<input type="submit" value="Trimite">
</form>
/* urmeaza fisierul exemplu5_4.php */
<?php
$a=$_FILES["file"]["size"];
$b=$_FILES["file"]["name"];
$c=$_FILES["file"]["tmp_name"];
$d=$_FILES["file"]["type"];
if(($a<10000) && ($a>0)) {
move_uploaded_file($c,$b);
echo "Original file name: ".$b."<br>";
echo "File name after upload: ".$b."<br>";
echo "File size: ".$a."<br>";
echo "File type: ".$d."";
}
?>
 
Forum » Tutoriale si Resurse (T&R) » T&R php » ELEMENTE DE BAZA PHP (Preluarea datelor din html) (PARTEA 6)
Pagina 1 din 11
Căutare: