Până nu demult, în Internet erau puțini cei care realizau și foloseau fișierele de comenzi - scripturile. Recent, însă, tot mai multă lume își construiește propriile pagini Web, sau chiar propriile centre Web, iar limbajele de comenzi, pentru realizarea de script-uri, devin tot mai importante. În același timp, aceste limbaje devin tot mai ușor de învățat, iar PHP este unul din ele, poate cel mai simplu și cel mai puternic (deocamdată).
PHP vine de la "Hypertext Preprocessor" și este un limbaj de comenzi-script pentru server (se spune că acționează pe partea serverului - server-side language). Adică fișierele cu comenzi PHP rulează pe serverul Web, nu în navigator, pe stația client. Cu alte cuvinte, nu trebuie să ne batem capul cu compatibilitatea soft a calculatorului personal de pe care navigăm. PHP este un limbaj relativ nou (comparativ cu alte limbaje precum Perl (CGI) și Java), dar devine rapid unul dintre cele mai răspândite și mai populare din Internet.
De ce PHP?De ce ar trebui preferat PHP altor limbaje, precum Perl? Și de ce ar trebui să învăț'ăm de fapt un limbaj pentru scripturi?
Învățarea sau măcar înțelegerea unui limbaj care să ne permită scrierea de scripturi Web, poate schimba complet viziunea lărgind grozav posibilitățile de publicare și activitate pe Web. Chiar dacă putem descărca scripturi gata făcute, din centre precum Hotscripts, acestea, de regulă, includ reclama pentru autorul respectiv și nu ne vor oferi exact ce dorim. Înțelegând limbajul vom edita mai ușor aceste scripturi, pentru ca să facă ceeace dorim, sau chiar putem crea scripturi noi, proprii.
Folosirea scripturilor în propriul centru Web ne permite să adăugăm multe elemente de noutate și interactivitate, precum formularele de feedback, cărțile de oaspeți, sistemele colaborative numite message boards, contoare ale vizitelor și multe alte elemente mai avansate precum sistemele portal, cele de management al conținutului, gestionarii de reclame (advertising managers), etc. Astfel de elemente sunt necesare pentru a obține o imagine de profesionist. Mai mult, oricine vrea acum să lucreze în industria de proiectare și dezvoltare se centre Web va descoperi că este mult mai simplu să găsească un loc de muncă atunci când știe PHP și programarea Web.
De ce am nevoie?
Așa cum am menționat înainte, PHP este un limbaj pentru scripturi pe partea de server (server-side). Asta însemnă că, utilizatorii nu trebuie să-și instaleze nimic în plus, ca soft, dar pe platforma unde rulează serverul Web (gazda Web) trebuie să avem instalat PHP. Acesta poate fi deja inclus (încorporat) în serverul Web, dar dacă nu știm: este sau nu instalat, putem să ne lămurim, ăpătând răspunsul cu ajutorul primului script din acest curs. Dacă serverul nu suportă PHP atunci va trebui să apelași la administratorul său pentru a-l instala, PHP-ul fiind un produs public - putând fi descărcat gratuit și simplu de la www.php.net. Altă cale este să vă găsiți o altă gazdă Web care suportă PHP. Sau să vă instalați propriul server Web împreună cu PHP
Scrierea in PHP
Sa scrii in PHP pe calculatorul tau este foarte simplu. Nu ai nevoie de un software special, exceptand un editor de text Pentru a scrie un fişier în PHP pe calculatorul propriu nu vă trebuie nimic alceva decât un simplu editor de texte (precum Notepad din Windows). Lansaţi-l şi pregătiţi-vă să scrieţi primul script PHP.
Declaratia PHP
Scripturile PHP sunt întotdeauna incluse între două taguri PHP, conform aceleaşi scheme ca şi în HTML. Astea spun serverului să preia information dintre ele şi să o interpreteze ca expresie din PHP. Există trei forme diferite de marcare a expresiilor - comenzilor PHP, şi anume:
<?
comenzi PHP
?>
<?php
comenzi PHP
php?>
<script language="php">
comenzi PHP
</script>
Toate trei acţionează - se comportă exact la fel. In cele ce urmează vom folosi doar prima variantă, pentru simplitate (<? şi ?>). Dar pot fi folosite, la fel de bine oricare din cele trei. Atenţie, combinarea lor nu este însă permisă, nu putem folosi pentru deschidere <? iar pentru închidere </script> , spre exemplu.
Primul script PHP este desigur unul banal şi totuşi esenţial. Tot ce va face este să furnizeze informaţiile despre instalarea şi starea PHP-ului pe server. Scrieţi cu editorul de texte următoarele:
<?
phpinfo();
?>
Aşa cum se vede este o singură linie de cod PHP. Este o funcţie standard din PHP, numită phpinfo, care va cere serverului să scrie şi să transmită un tebel standard cu informaţiile de configurare a serverului.
O observaţie importantă din acest exemplu: linia de cod PHP se termină cu punct şi virgulă (;). Asta-i foarte important ca sintaxă. La fel ca în multe alte limbaje de comenzi sau de programare, liniile trebuie să se termine cu un marcaj anume,adesea tot (;), iar dacă acest terminator este omis rezultă o eroare.
Testarea scriptului
Odată scris, scriptul trebuie salvat ca fişier dându-i un nume. În acest caz, să-i spunem phpinfo.php. Apoi trebuie să încărcăm fişierul pe server, în spaţiul uzual al documentelor Web. După asta, folosind navigatorul, apelăm scriptul prin URL-ul corespunzător. Dacă lucrează (şi dacă PHP este instalat pe server) atunci vom obţine o listă amplă, plină cu detalii despre situaţia PHP pe server.
Dacă scriptul nu lucrează şi apare o pagină albă, atunci avem sau o eroare în modul în care a fost scris scriptul, sau serverul nu suportă această funcţie (situaţie extrem de puţin probabilă). Dacă, în locul afişării informaţiilor apare o ofertă de descărcare a fişierului (download), sau ne apare chiar scriptul aşa cum a fost scris (sursa), înseamnă că PHP nu este instalat pe server. Caz în care trebuie sau să căutăm alt server sau să instalăm PHP.
Nu strică să păstraţi acest script pentru utilizări ulterioare
Introducere
In ultima parte a lecției precedente am discutat câteva din avantajele PHP-ului ca limbaj pentru scripturi, învățând cum să testăm dacă avem sau nu PHP instalat pe server. Acum vom vedea cum apar informațiile în navigator și cum utilizăm variabilele pentru a prelua informații.
Scrierea unui text
Pentru a scoate - afișa un text în scriptul PHP, avem mai multe posibilități. Pima, prin utilizarea comenzii print. Print permite afișarea unui text, a unor variabile sau a unor combinații ale acestora, pe ecran.
Instrucțiunea print este folosită în felul următor:
print("Hello world!");
Asta s-ar scrie ca fișier PHP în forma:
<?
print("Hello world!");
?>
care prin apel cu navigatorul va afișa pe ecran:
Hello world!
Variabile
Ca și în alte limbaje de programare, în PHP putem defini variabile. Există câteva tipuri de variabile în PHP, dar cea mai uzuală este variabila șir de caractere, numită String. Poate fi folosită pentru texte sau numere. Toate șirurile de caractere, toate variabilele string încep cu semnul $ . Pentru a atribui un text unei variabile string trebuie să folosim o succesiune de forma:
$text_salut = "Bun venit pe site-ul meu Web!";
Este o linie simplu de înțeles, tot ce se află între ghilimele va fi atribuit variabilei string din membrul stâng. Desigur, trebuie să ne reamintim câteva reguli privind lucrul cu șiruri de caractere.
Distinția dintre majuscule și minuscule. Astfel $Welcome_Text diferă de $welcome_text
Numele de șiruri pot conține litere, cifre și semne de subliniere (_), dar nu pot începe cu o cifră sau cu semnul _
Când atribuim un număr la un string nu mai e nevoie să punem ghilimelele. Adică este acceptată construcția:
$user_id = 987
Variabile de scoatere
Pentru a afișa o variabilă pe ecran folosim exact aceiași comandă ca și pentru a afișa un text, cu o mică diferență formală. Astfel, pentru a afișa stringul atribuit variabilei $text_salut scriem:
<?
$text_salut = "Bun venit pe site-ul meu Web!";
print($text_salut);
?>
Așa cum se poate vedea, singura diferență ar fi că scriem în comanda print numele variabilei, fără ghilimele, în locul textului cu ghilimele.
Formatarea textului
Din păcate scoaterea - afișajul în această formă cu print din PHP nu este prea interesant. Totul apare în navigatorul cu caracterele (fontul) predefinite. Dar este foarte simplu să introducem un format în text folosind HTML. Asta pentru că, PHP fiind pe server, codul se execută înainte ca pagina să fie trimisă spre navigator. Ceea ce înseamnă că doar rezultatele rulării scriptului sunt trimise, astfel că, în exemplul de mai sus spre navigator se va trimite doar textul:
Bun venit pe site-ul meu Web!
Iar asta ne permite să includem elementele de formatare - marcare standard din HTML pentru a face ca textul să apară așa cum dorim. Aceste pot fi plasate direct în string-ul din scriptul PHP. Singura problem este că multe taguri HTML pretind ghilimele în sintaxă. Iar asta ar provoca un conflict cu ghilimelele din șirul declarat în script. Putem preciza - defini însă care semne de punctuație au rolul ghilimelelor din script, și care sunt ghilimelele care trebuie ignorate.
Sre exemplu, să afișăm textul de mai sus cu Arial scris cu roșu. Asta s-ar scrie:
<font face="Arial" color="#FF0000">
</font>
Aici avem 4 ghilimele care ar putea încurca scriptul. Din cauza asta trebuie să adăugăm un backslash (\) înaintea fiecărei ghilimele pentru a face ca scriptul PHP să o ignore. Astfel vom avea:
<font face=\"Arial\" color=\"#FF0000\">
</font>
Iar asta poate fi deja inclusă în instrucțiunea print:
print("<font face=\"Arial\" color\"#FF0000\">Bun venit pe site-ul meu Web!</font>");
care va face ca pe navigator să apară:
Bun venit pe site-ul meu Web!
deoarece scriptul a transmis doar codul:
<font face="Arial" color="#FF0000">Bun venit pe site-ul meu Web!</font>
Pare destul de complicată această scoatere de cod HTML, dar vom vedea că există și o cale ceva mai simplă.
Introducere
În cele două lecții anterioare am văzut cum scriem un text în PHP și cum îl atribuim unei variabile. Acum vom vedea cum folosim condițiile, instrucțiunea IF, pentru a lua decizii în cadrul scriptului.
Definitia instructiunii IF
Instrucțiunea condițională IF este folosită pentru a compare două valori și a realiza acțiuni diferite în baza rezultatelor testului. Instrucțiunea urmează sintaxa (are forma) IF - THEN - ELSE. Partea IF testează o condiție. Dacă aceasta este adevărată, atunci este urmată ramura THEN. În caz contrar se merge pe ramura ELSE.
Structura instructiunii IF
În general avem următoarea structură:
IF ('ceva' == 'altceva') {
'Ramura THEN'
} else {
'Ramura ELSE'
}
Variabile
Uzual, comparăm o variabilă cu o anumită porțiune de text, cu un număr, sau cu altă variabilă. Spre exemplu:
if ($username == "webmaster")
adică comparăm valoarea pe care o ia variabila cu șirul precizat de caractere. Ramura THEN a instrucțiunii fiind executată doar dacă variabila are exact valoarea care apare între ghilimele, adică dacă coincide cu cuvântul 'webmaster'. Dacă are însă valoarea 'Webmaster' sau 'WEBMASTER' va fi urmată ramura ELSE.
Declaratia THEN
In cazul de mai sus, putem completa scriptul adăugând o ramură THEN de forma:
if ($username == "webmaster") {
echo "Please enter your password below";
}
care va afișa cererea parolei dacă numele utilizatorului este webmaster. În caz contrar, nu se afișează nimic. Putem să lăsăm instrucțiunea în această formă, pentru că nu este obligatoriu să apară o ramură ELSE. Asta-i util mai ales când avem condiții multiple.
Declaratia ELSE
Adăugarea unei ramuri ELSE este la fel de simplă. Spre exemplu:
if ($username == "webmaster") {
echo "Please enter your password below";
} else {
echo "We are sorry but you are not a recognised user";
}
Dar nu suntem limitați doar la o singură linie. Putem adăuga orice comandă PHP între acoladele ramurii respective. Putem chiar include alte instrucțiuni IF (cuibărite).
Alte comparatii
Există și alte moduri de a folosi instrucțiunea IF pentru a compara valori. Comparând două variabile diferite ca să vedem dacă valorile lor se potrivesc sau nu, spre exemplu:
if ($parola_introdusa == $password)
Dar compararea se poate face folosind oricare din simbolurile standard de comparație, pentru a verifica dacă o valoare este mai mică sau egală decât alta:
if ($varsta < "13")
Sau:
if ($date > $finished)
Mai mult, putem avea teste multiple într-o singură instrucțiune IF. Spre exemplu, dacă avem un formular și vrem să verificăm dacă vre un câmp a fost lăsat necompletat:
if ($name == "" || $email == "" || $password == "") {
echo "Please fill in all the fields";
}
În ultimele lecții ale acestui curs am văzut cum manevrăm texte și variabile &ncirc;n PHP și cum putem folosi instrucțiunea IF pentru a le compara ca să luăm decizii. Acum vom vedea cum folosim altă parte importantă a PHP, salturile.
Perioada LoopDacă avem o anumită secvență de instrucțiuni care trebuie repetate de un număr fixat de ori (fără a le rescrie), atunci putem folosi un ciclu while. Spre exemplu, dacă vrem să scriem cuvintele "Hello World" de 5 ori, putem face astfel:
$times = 5;
$x = 0;
while ($x < $times) {
echo "Hello World";
++$x;
}
Cum interpretăm acest script? Primele două linii sunt doar atribuiri ale variabilelor. Variabila $times capătă valoarea din condiția ciclului, în acest caz - 5 . Variabila $x este contorul care va număra de câte ori se execută secvența. După aceste atribuiri, urmează linia WHILE. Acesta comandă repetarea secvenței dintre acolade, câtă vreme $x este mai mic decât $times (alfel spus, repetarea până câ,nd $x devine egal cu $times). Secvența care se execută repetat apare în următoarele 2 linii (între acolade).
După linia echo care afișează textul, apare o altă linie foarte importantă:
++$x;
Din programare știm că asta înseamnă incrementarea variabilei $x, adică același lucru cu:
$x = $x + 1;
Astfel, la fiecare repetare, variabila $x ia pe rând valorile 1, 2, 3, 4, 5. La ultima, condiția din linia WHILE nu mai este îndeplinită și ciclul ia sfârșit.
Folosirea lui $x
Variabila de contorizare ca ciclului (în cazul de mai sus $x ) poate fi folosită nu numai pentru numărare. Spre exemplu, dacă vrem să creem o pagină web cu toate numerele de la 1 la 1000 în ea, putem fie să scriem fiecare număr în parte, fie să folosim următoarea secvență:
$number = 1000;
$current = 0;
while ($current < $number) {
++$current;
echo "$current<br>";
}
Ce ar fi de spus despre acest script? Mai întâi că am plasat, spre deosebire de cazul dinainte, comanda de incrementare ++$current; înaintea instrucțiunii echo . Asta pentru că dorim să începem cu scrierea lui 1 , nu a lui 0. De fapt, linia ++$current; poate fi plasată oriunde în ciclul WHILE. După cum se pot efectua orice operații aritmetice asupra numărului în cauză.
Array
Vectorii sunt structuri obișnuite în majoritatea limbajelor de programare. Sunt variabile speciale care pot lua mai mult decât o singură valoare, toate stocate în spațiul propriu numerotat - în vector. Vectorii sunt extrem de utili mai ales la ciclurile WHILE.
Setarea Array
Definirea - inițializarea unui vector este puțin diferită de cea a unei variabile normale. În exemplul următor vom introduce un vector cuprinzând 5 nume:
$names[0] = 'John';
$names[1] = 'Paul';
$names[2] = 'Steven';
$names[3] = 'George';
$names[4] = 'David';
Așa cum se vede, componentele unui vector sunt numerotate, pornind de la 0. Pentru a adăuga o valoare uneui vector trebuie să specificăm poziția din cadrul vectorului - prin intermediul indicelui plasat între parantezele drepte [ ].
Citind cu ajutorul Array
Citirea unui vector se face exact la fel ca și atribuirea. Tot ce avem de făcut este să precizăm numele vectorului și numărul componentei dorite. Astfel, dacă vrem să vedem cel de al treilea nume (din vectorul $names ) putem folosi scriptul:
echo "Al treilea nume este $names[2]";
Which would output:
Al treilea nume este Steven
Folosirea Array si Loop
Una dintre cele mai bune utilizari ale unui loop este de a scoate informatia intr-un array. De exemplu, daca as dori sa
Una din cele mai utile utilizări a ciclurilor apare pentru a extrage informațiile dintr-un vector. Spre exemplu, dacă vrem să scoatem umătoarea listă de nume:
Numele 1 este John
Numele 2 este Paul
Numele 3 este Steven
Numele 4 este George
Numele 5 estes David
Putem folosi următorul cod:
$number = 5;
$x = 0;
while ($x < $number) {
$namenumber = $x + 1;
echo "Numele $namenumber este $names[$x]<br>";
++$x
}
Așa cum se poate vedea, folosim variabila $x din acest ciclu pentru a afișa numele înregistrate într-un vector. Iar pentru afișare am folosit variabila $namenumber care este cu o unitate mai mare decât $x. Asta deoarece numerotarea (indixarea) vectorului pornește de la 0.
Introducere
Este extrem de simplu de trimis un mesaj e-mail din PHP, spre deosebire de situația din alte limbaje de comandă care necesită o inițializare aparte, tip CGI. De fapt, în PHP avem doar o singură comandă mail() pentru a trimite un mesaj. Utilizată în formatul următor:
Comanda Mail
Este extrem de simplu de trimis un mesaj e-mail din PHP, spre deosebire de situația din alte limbaje de comandă care necesită o inițializare aparte, tip CGI. De fapt, în PHP avem doar o singură comandă mail() pentru a trimite un mesaj. Utilizată în formatul următor:
mail($destinatar,$subiect,$corpul_mesajului,$antet);
In acest exemplu variabilele indică prin numele lor sintaxa comenzii. De fapt se pot include chiar textele în comandă. Să le luăm pe rând: Mai întâi variabila $destinatar. Aceasta conține adresa e-mail la care să fie transmis mesajul. Variabila $subiect trebuie să conțină textul care dorim să apară în linia Subject: a mesajului. Iar variabila $corpul_mesajului conține textul mesajului - conținutul său.
Prin variablia $antet se transmit componentele suplimentare din antetul mesajului. Cel mai des e vorba despre câmpul From: , dar poate fi inclusă oricare linie din antet, precum Cc:, sau Bcc:
Trimitere emailurilor
Mai înainte de a expedia un mesaj, dacă folosim variabile atunci va trebui ca, mai întâi să inițializăm aceste variabile. Iată un exemplu:
$destinatar = carmen@hotmail.com;
$subiect = "despre PHP";
$corpul_mesajului = "PHP este unul dintre cele mai bune limbaje de comenzi pentru alcătuirea scripturilor";
$antet = "From: webmaster@hotmail.com\n";
mail($destinatar,$subiect,$corpul_mesajului,$antet);
echo "Mesaj trimis la $destinatar";
Acest cod va face două lucruri. Va trimite un mesaj la adresa carmen@hotmail.com , cu subject: 'despre PHP' și cu textul:
PHP este unul dintre cele mai bune limbaje de comenzi pentru alcătuirea scripturilor
iar mesajul e-mail va apare ca venind de la webmaster@hotmail.com. Dar va mai fi transmis și textul:
Mesaj trimis la carmen@hotmail.com
către navigator.
Formatarea emailurilor
In exemplul de mai sus, în variabila $antet, linia From: este încheiată cu \n. Acesta reprezintă un simbol foarte important la trimiterea unui e-mail. Este codul pentru "linie nouă". Cum în antetul mesajului (şi deci şi în variabila $antet) putem avea mai multe linii, fiecare trebuie să se încheie cu combinaţia \n . Acesta este standardul international pentru formatul mesajelor e-mail.
Combinaţia aceasta de trecere la linie nouă ( \n ) poate fi folosită şi în corpul mesajului, în variabila $corpul_mesajului . Dar nu are voie să apară nici în adresa de destinaţie (în variabila $destinatar ), nici în subiectul mesajului (variabila $subiect ).
Mail fara variabile
Emailul de mai sus poate fi trimis folosind diferite nume de variabile (este pozitia variabilelor in legatura cu virgula, nu
In sintaxa comenzii mail() nu contează numele variabilelor ci doar poziția - ordinea lor. Adică, în exemplul de mai sus putem folosi alte patru variabile numite $v1 , $v2 , $v3 și $v4 . Totul se poate scrie și într-o singură linie, introducând direct textul, în forma:
mail("carmen@hotmail.com","despre PHP","PHP este unul din cele mai bune limbaje","From: webmaster@hotmail.com\n");
Dar asta devine ceva mai dificil de citit.
Controlul erorilor
Așa cum orice programator știe foarte bine, este foarte ușor să faci greșeli într-un script, după cum e foarte simplu să intervină greșeli în scrierea adreselor e-mail (în mod special dacă folosim scriptul pentru a construi mesajele). Din cauza asta, este util să adăugăm scriptului o secvență de verificare, de forma:
if(mail($to,$subject,$body,$headers)) {
echo "Mesajul e-mail a fost trimis la $to cu subiectul: $subject";
} else {
echo "A intervenit o eroare la trimiterea mesajului. Verificați scriptul și asigurați-vă că adresa e-mail $to este corectă";
}
Acest script pare suficient de limpede. Dacă mesajul este expediat fără probleme, acest fapt va fi comunicat - va apare în fereastra navigatorului. Similar, în cazul unei erori, vom recepționa atenționarea cuvenită, cu sugestii de remediere.
Introducere
In lecția anterioară am văzut cum folosim PHP-ul pentru a trimite mesaje e-mail dintr-un script. In lecția aceasta vom contiua această discuție și vom vedea cum folosim formularele cu PHP, pentru a face scripturile PHP cât mai utile
Setarea pentru Formulare
Scrierea unui formular pentru a fi folosit cu un script PHP se face exact la fel ca și în mod normal, în HTML. Cum acesta este un curs de PHP nu vom intra în detalii privind scrierea formularului, ci vom discuta trei dintre compunentele pe care trebuie să le știți:
<input type="text" name="caseta" value="Numele d-voastra">
va afișa o caseta pentru introducerea unui text, casetă în care apar scrise (la început) cuvintele Numele d-voastra. De fapt atributul value în această linie este opțional. Informația - textul atribuit atributului name va constitui numele acestei casete text, trebuind să fie unic în formular.
<textarea name="mesaj">
Scrieți aici mesajul d-voastră.
</textarea>
va afișa o casetă mare de text cuprinzând îndemnul 'Scrieți aici mesajul d-voastră.'. Si de data aceasta, numele casetei este definit (mesaj) și trebuie să fie unic.
<input type="submit" value="Trimite">
această linie va crea un buton de trimitere în formularul respectiv. Desigur puteți schimba/alege textul care apare pe buton modificând expresia atribuită lui value.
Toate elementele formularului trebuie să fie cuprinse între tagurile <form> . Adică se folosesc cam așa:
<form action="prelucrare.php" method="post">
Elementele Formularului și comenzile de formatare, etc.
</form>
unde valoarea atribuită lui form action spune care este script-ul căruia i se transmit datele (în acest caz fișierul prelucrare.php). Aici putem avea chiar un URL complet (spre exemplu http://relis.uvvg.ro/~jalobean/Cursuri/PHP-proc/prelucrare.php). Metoda method spune formularului cum să transmită datele sale. Cu opțiunea POST datele vor fi trimise scriptului într-un pachet (stream) atunci când acesta le cere. O altă opțiune este GET, caz în care datele din formular sunt trimise în forma unui url astfel că vor apare după un semn ? , precum în exemplul: http://relis.uvvg.ro/~jalobean/Cursuri/PHP-proc/prelucrare.php?name=Mihai
Nu prea contează care metodă o folosiți, dar este mai bine să folosiți POST dacă-i vorba de informații delicate (parole, etc.) pentru ca acestea să nu poată fi văzute în bara de adrese a navigatorului.
Obtinerea datelor din Formular
Pasul următor este să luăm, să extragem datele din formularul transmis script-ului, astfel încât să putem face ceva cu ele. Există două procedee diferite de extragere a datelor în PHP, care depind de modul în care datele au fost trimise (cu metoda GET sau cu POST). Diferenţa majoră dintre cele două constă în faptul că, folosind GET, variabilele şi datele vor fi vizibile în adresa paginii, în timp ce folosind POST acestea sunt invizibile. Cu GET, însă, putem transmite informaţii către script fără un formular, pur şi simplu editâbd URL-ul.
Asta se poate face cam la fel cu transmiterea formularului folosind GET. Avantajul ar fi că, astfel se pot crea legături la script-uri care vor produce efecte diferite în funcţie de legătura selectată. Spre exemplu, putem construi un script care să ne arate diferite pagini Web, funcţie de legătura selectată:
pagina.php?user=carmen poate arăta pagina mea Web (a utilizatorului carmen, iar:
pagina.php?user=dcarmen poate arăta pagina utilizatorului dcarmen de pe serverul Relis, folosind acelaşi script.
Ba este posibil şi să transmitem script-ului mai mult decât o singură valoare a unui atribut folosind schema de mai sus şi separând elementele prin simbolul & :
pagina.php?user=david&referrer=gowansnet&area=6
Aceste elemente vor putea fi accesate separat folosind variabilele GET: user, referrer şi area.
Pentru a prelua o variabilă care a fost trimisă script-ului cu metoda POST trebuie să folosim un apel de forma:
$nume_variabila=$_POST['variabila'];
care preia, în fond, variabila de la POST (numele unui câmp din formular) şi o atribuie variabilei $nume_variabila.
Similar, la folosirea metodei GET vom scrie:
$nume_variabila=$_GET['variabila'];
Iar asta se poate face şi trebuie făcut pentru fiecare variabilă pe care vrem să o folosim din formular (sau din URL).
Crearea unei Form pentru scriptul Mail
In încheierea acestei secţiuni, să vedem cum aplicăm cele discutate mai sus şi cum realizăm un mecanism care să producă şi să ne transmită un mesaj e-mail cu comentariile unui utilizator.
Mai întâi să pregătim formularul pentru a-l include în pagina HTML:
<form action="mail.php" method="post">
Numele: <input type="text" name="nume"><br>
Adresa E-mail: <input type="text" name = "email"><br><br>
Comentarii<br>
<textarea name="comentar"></textarea><br><br>
<input type="submit" value="Trimite">
</form>
Astfel avem un formular simplu în care utilizatorul poate introduce adresa sa e-mail, numele său şi comentariile dorite. Putem desigur să adăugăm şi alte părţi într-un asemenea formular, cu condiţia să actualizăm şi script-ul. Pentru cazul simplu de mai sus, scriem următorul script PHP:
<?
$numele=$_POST['nume'];
$adresa=$_POST['email'];
$comentariu=$_POST['comentar'];
$catre=carmen@hotmail.com;
$mesaj="$numele tocmai a transmis comentariile sale. Acolo spune:\n$comentariu\n\nAdresa sa e-mail a fost: $adresa";
if(mail($catre,"Comentarii din propriul Site",$mesaj,"From: $email\n")) {
echo "Multumiri pentru comentariile d-voastra.";
} else {
echo "Exista o problema la transmiterea mesajului. Verificati, va rog, modul in care ati completat formularul.";
}
?>
Nu uitaţi să înlocuiţi adresa mea e-mail carmen@hotmail.com cu propria voastră adresă e-mail. Acest script trebuie salvat ca fişier cu numele mail.php , iar ambele fişiere (acesta şi pagina Web în care a fost inclus formularul de mai sus) trebuie încărcate pe serverul Web în zona destinată documentelor accesibile (acolo de unde vor fi apelate). Tot ce a mai rămas atunci de făcut, este să verificăm completând formularul.
|
Comentariile
Ca la orice limbaj de programare, este important să introducem în script-ul pe care-l facem și comentarii. Dacă lucrăm la un script împreună cu altcineva, atunci trebuie să-l ajutăm să înțeleagă ce am vrut, cum am abordat problema, ce reprezintă variabilele introduse... Dacă punem scriptul la dispoziția studenților sau a comunității celor preocupați de PHP sau de aplicația realizată, cu atât mai mult este nevoie de comentarii în script. Chiar și dacă nu avem planuri atât de mari, comentariile ne vor fi de folos peste un timp, atunci când vom dori să ne amintim cum am făcut ca să-l putem modifica adaptându-l altor cerințe.
In PHP există două moduri de a introduce comentarii. Unul folosit pentru o singură linie de comentariu, altul folosit, mai ales, pentru comentarii mai largi, care privesc mai multe linii. Comentariul dintr-o linie se scrie în forma:
// comentariul se poate scrie aici
Tot ce apare în linie după marcajul // va fi ingnorat la execuția scriptului. Marcajul și comentariul aferent poate apare oriunde pe linie (la început, sau după o serie de comenzi, spre exemplu:
print "Hello $name"; // Salutam vizitatorul
Modul de comentariu pe mai multe linii este:
/* The following piece of code will take the input
the user gave and will check that it is valid before
adding it to the database */
Textul este plasat deci între marcajele /* și */ . Tot ce se află între acestea va fi ignorat la execuție. Este foarte important să nu uităm să închidem comentariul, cu */ , altfel scriptul nu va rula deloc.
Print, Echo si HTML
Aşa cum poate aţi remarcat, în cele 6 lecţii din acest curs, au fost folosite patru moduri diferite de a scoate - transmite informaţiile către navigator:
echo("textul de aici");
echo "textul de aici";
print("textul de aici";
print "textul de aici";
Fiecare din liniile de mai sus face acelaşi lucru, aşa încât putem folosi oricare dintre variante într-un script. Si nu există nici o constrângere de a utiliza o aceeaşi variantă pe parcursul aceluaşi script. Singura problemă este că, aşa cum am discutat în lecţia a 2-a, toate apariţiile semnului " în codul HTML trebuie să apară (să fie înlocuite cu) \" chestie care, la un script lung, poate să dureze. Asta ne conduce la o parte foarte utilă a PHP. Dacă, spre exemplu, creem dinamic un antet al unei pagini Web cu PHP, atunci o să avem o succesiune de coduri cam aşa:
<?
Prima parte a codului PHP
?>
Codul HTML
<?
Partea finală a codului PHP
?>
Asta merge şi mai bine dacă codul PHP va continua de unde a fost lăsat, adică cam aşa:
<?
IF Statement {
?>
HTML For IF Being Correct
<?
} else {
?>
HTML For IF Being Wrong
<?
}
?>
Trebuie, desigur, să nu uităm să închidem buclele din instrucţiunea IF (o eroare destul de frecvent întâlnită).
Este foarte util să plasăm cod HTML în scriptul PHP, dar ce ne facem atunci când vrem să punem valoarea unei variabile în acea parte de cod. Spre deosebire de cazul când folosim instrucţiunile echo sau print, nu putem pune numele unei variabile intr-o secţiune care nu este cod PHP. In schimb, variabila poate fi inclusă într-o mică secvenţă PHP.
Spre exemplu, dacă vrem să scriem numele cuiva, dintr-un script, cu formatare HTML, putem face astfel:
<font face="Arial" size="7" color="red"><b><? echo($variablename); ?></b></font>
Adică am adăugat pur şi simplu în secvenţa HTML următoarea secvenţă PHP:
<? echo($variablename); ?>
care este totuna cu:
<?
echo($variablename);
?>
doar că-i totul pus într-o singură linie.
Concluzii
Acest curs a explicat câteva din elementele de bază ale PHP şi ar trebui să vă ajute să lucraţi cu PHP. Pentru mai multe detalii vizitaţi PHP.net, pagina oficială a PHP. Ceea ce lipseşte din acest curs, cum poate aţi observat, este exact folosirea PHP cu o bază de date. Asta fiind însă una din principalele raţiuni pentru care lumea foloseşte PHP şi prezentând deci un interes aparte, subiectul a fost lăsat pentru un curs separat de PHP/MySQL.
Create a free website at Webs.com