Sunteți pe pagina 1din 5

Erori in PHP Erorile se clasifica in : - erori de sintaxa - erori logice Erorile de sintaxa sunt erori de genul : eco hello;

sau echo hello echo world; Aceste erori produc un mesaj de tip Parse Error. Chiar daca eroarea va fi indicata pentru linia a 2-a (in cadrul celui de-al doilea exemplu), mesajul este destul de util : Parse Error, expecting , or ; in <fisier> on line 2. O alta eroare de sintaxa este generata de structurile repetitive gresit descrise : <?php for ($i=0;$i<3;$i++){ echo salut; ?> Sumarizand, erorile de sintaxa se impart in : erori de scriere erori de constructie (inchiderea acoladelor, parantezelor, etc..) semnul de terminare al unei instructiuni (;) apelarea unei functii cu un nume gresit neinchiderea ghilimelelor in cazul stringurilor

Erorile logice sunt mai greu de localizat, ele fiind datorate unei conceperi deficitare a programului sau chiar a unei greseli de tiparire (un singur egal = intr-un if in loc de doua semne de egalitate == ). In cel de-al doilea caz, in loc ca structura decizionala sa compare variabila cu ce se afla in dreapta dublului egal, i se atribuie variabilei valoarea din dreapta egalului.

Ex : <? $i=4; if ($i=5) echo i este egal cu cinci; else if ($i==4) echo I este egal cu patru; ?> Urmatoarele erori sunt catalogate ca erori de tip logic : - division by zero - bucle infinite - functii ce nu returneaza nimic sau primesc argumentele in ordine gresita

3. Lucrul cu clientul PHP poate prelua interactiv datele de la client prin intermediul formularelor. Elementele cele mai importante ale unui form sunt : - ACTION transmite serverului la ce pagina sa se duca si sa transmita datele completate in momentul in care utilizatorul a trimis formularul. - METHOD reprezinta modul in care datele sunt trimise serverului. Metoda GET adauga variabilele in campul de adresa al paginii web. Metoda POST trimite ascuns variabilele catre pagina descrisa la ACTION. Ex: <form action=test.php method=get> </form> sau <form action=test.php method=post> </form>

In cadrul formularului putem avea campuri : - text - textarea - list box (select) - radio - checkbox - hidden - password Aceste campuri se trimit catre scriptul PHP printr-un buton de tip submit. Toate campurile de mai sus au un parametru numit name ce trebuie specificat obligatoriu in cazul in care dorim preluarea si/sau prelucrarea ulterioara a datelor introduse. Ex : Fisierul html : <form action=test.php method=post> Cum va numiti ? <input type=text name=nume> <input type=submit value=Trimite> </form> Fisierul test.php : <? echo Salut .$nume; ?> Valoarea parametrului name din cadrul fiecarui camp din formular va deveni variabila in scriptul specificat la parametrul ACTION al formularului. ---la tabla, pentru fiecare tip acceptat de form--ATENTIE : In cazul in care numele ce este scris la parametrul name din cadrul formularului nu devine variabila in scriptul de la action, verificati in fisierul PHP.INI (ce rezida de obicei acolo unde exista si fisierul de configurare (HTTPD.CONF) al serverului web Apache daca parametrul register_globals este pus pe On.

In cazul in care nu aveti permisiuni de modificare al acestui fisier sau din motive de siguranta se prefera un register_globals pus pe Off, variabilele trimise de formular se pot citi cu : $HTTP_POST_VARS[numevariabila], respectiv $HTTP_GET_VARS[numevariabila]. Sau $_POST[numevariabila], respectiv $_GET[numevariabila]. Unde numevariabila reprezinta valoarea acordata parametrului name din cadrul formularului. Persistenta Persistenta reprezinta modul in care putem transmite variabile in cadrul unei vizite, de la o pagina la alta. O astfel de variabila ar fi un nume de utilizator si o parola sau produsele comandate la un moment dat, diverse setari, etc.. Primul tip de persistenta se poate realiza cu formulare al caror campuri sunt de tip hidden. Ex : Pagina 1 fisierul 1: <? $username=gigel; $password=1234; echo <form action=pagina2.php method=post>; echo <input type=hidden name=username value=$username>; echo <input type=hidden name=password value=$password>; echo <input type=submit value=Next>; echo </form>; ?> Pagina 2 fisierul 2: <? echo $username.-.$password; ?>

Al doilea tip de persistenta se poate realiza folosind cookie urile. Cookie urile sunt fisiere de dimensiuni mici ce rezida pe calculatorul clientului cu ajutorul carora sunt stocate diverse informatii ce pot fi ulterior regasite de catre server. Comanda prin care sunt trimise cookie urile pe masina clientului este : setcookie (nume,valoare,timp in secunde de la 1 Ian 1970 pana cand expira); Ex : <? $username=gigel; $password=1234; setcookie(username,$username,time()+3600); setcookie(password,$password,time()+3600); ?> Apelarea se face in modul urmator : echo $HTTP_COOKIE_VARS[username]; echo $HTTP_COOKIE_VARS[password]; sau echo _COOKIE[username]; echo _COOKIE[password];

Atentie : daca exista diferente de ceas intre server si client cookie urile pot fi interpretate de browser ca fiind deja expirate, astfel vor fi sterse de pe calculatorul clientului. Distrugerea cookie urilor se poate face in doua moduri : setcookie (nume,valoare,time()-9999999); setcookie (nume);