Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Utilizarea functiilor PHP
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

<titlu>Utilizarea functiilor</titlu>

<titlu>Scopuri</titlu> i4u1un
• invatati sa apelati functiile
• invatati sa atribuiti unei variabile numele unei functii
• invatati sa ascundeti mesajele de eroare generate in timpul executiei unei functii
• invatati sa folositi programele rezidente in fisierele externe
• invatati sa definiti o functie
• invatati sa folositi variabile globale, locale si statice
• invatati sa folositi referintele

In Modulul 2 a fost prezentata notiunea de functie, care simplifica efectuarea unei varietati de calcule. In cadrul acestui modul, veti invata mai multe despre utilizarea functiilor si despre modul de definire a propriilor dumneavoastra functii.

<titlu>Utilizarea unei functii</titlu>
Procesul de executare a unei functii se numeste utilizarea, apelarea sau invocarea functiei. Pentru a folosi o functie, scrieti numele functiei, urmat de o pereche de paranteze. De exemplu, functia rand(), care genereaza un numar intreg aleator, poate fi apelata astfel:

rand();

Majoritatea functiilor preiau argumente, reprezentand valori, de intrare care influen¬teaza operarea si rezultatul functiei. Pentru a specifica argumente, acestea se inse¬reaza intre paranteze; daca specificati mai mult de un argument, fiecare argument trebuie separat de vecinul sau prin intermediul unei virgule. Argumentul unei functii poate fi o valoare literala, o variabila sau o expresie.
Unele functii PHP au argumente optionale, care pot fi specificate sau omise, in conformitate cu intentiile dumneavoastra. De exemplu, functia rand () are doua argumente optionale. Primul argument al functiei indica valoarea intreaga aleatoare cea mai mica pe care o va returna functia; al doilea argument indica valoarea cea mai mare. Daca omiteti ambele argumente, functia returneaza o valoare cuprinsa intre 0 si cel mai mare rezultat posibil. Daca doriti, puteti specifica primul argu¬ment, omitandu-1 pe al doilea:




rand(100);

Astfel, functia este obligata sa returneze o valoare cuprinsa intre 100 si cel mai mare rezultat posibil.
Ca si rand(), majoritatea functiilor returneaza valori. Puteti folosi intr-o expresie valoarea returnata de o functie. O situatie foarte frecventa in care se procedeaza astfel o constituie utilizarea valorii returnate de o functie intr-o expresie de atribuire, astfel incat valoarea sa fie accesibila in mod repetat fara a se invoca functia de mai multe ori. De exemplu:

$gogoasa = rand(1, 12);

Cand se produce o eroare in timpul executiei unei functii, PHP genereaza mesaje de eroare. Uneori, asemenea mesaje de eroare sunt nedorite. In acest caz, puteti suprima generarea mesajelor de eroare prin prefixarea numelui functiei invocate cu ajutorul caracterului @. De exemplu,, pentru a suprima mesajele de eroare care pot aparea in timpul executiei functiei f ( ), invocati aceasta functie dupa cum urmeaza:

Y = @f(x);

<Test „la minut">
• Scrieri o instructiune care atribuie variabilei $x un numar intreg aleator cuprins intre l si 10.
• Scrieri o instructiune care invoca functia sensibil_la_erori(), care nu preia nici un argument si nu returneaza nici un rezultat, suprimand toate mesajele de eroare rezultate.
</Test „la minut">

<titlu>Utilizarea fisierelor incluse</titlu>
Functiile PHP va permit sa obtineri accesul la programe PHP scrise anterior, create de dumneavoastra sau de catre un alt programator in limbajul PHP. Un alt mecanism care va permite sa obtineri accesul la programele scrise anterior il consti¬tuie instructiunea require, care are urmatoarea forma:

require(nume_fisier);

Argumentul nume_fisier are forma unui sir, deci o instructiune require caracteristica poate avea urmatorul aspect:

require(„fisierul.inc”);

Cand este incarcat un script PHP care contine o instructiune require, continutul fisierului specificat - cunoscut sub numele de fisier de includere - este inserat in script,

<nota>
Raspunsuri la test:
• $x = rand(1, 10);
• @sensibil_la_erori( ) ;

inlocuind instructiunea require. Daca fisierul de includere contine linii de program PHP, trebuie sa includa etichetele <?php si ?>, amplasate in locatiile adecvate.
Desi se obisnuieste ca un fisier de includere sa primeasca extensia de fisier inc, nu este obligatoriu sa procedati astfel. Unii programatori PHP prefera sa foloseasca extensia de fisier php pentru toate fisierele pe care le creeaza.
Instructiunea require va poate scuti de un mare volum de munca. De exemplu, sa presupunem ca scrieti o aplicatie PHP care este alcatuita din mai multe scripturi, iar fiecare script afiseaza o pagina HTML care contine informatii standard in partea de sus a paginii. Puteti crea un fisier script special, denumit antet.inc, care contine urmatoarele linii de program:

<HTML>
<HEAD>
<TITLE>Aplicatia care pune capac la toate aplicatiile</TITLE>
</HEAD>
<BODY>
<H1>Aceasta este aplicatia care incheie toate aplicatiile</H1>
<H5>Copyring 2005, Fane Programatorul si Compania SRL.</H5> si asa mai departe…

Prin insertia instructiunii

require(„antet.inc”);

la inceputul fiecarui script, determinati programul PHP sa includa continutul acelui fisier ca si cum continutul respectiv ar face parte din acel script. Acest proce¬deu poate simplifica intretinerea programului, deoarece informatiile standard pot fi rezidente intr-un singur fisier, ceea ce le face usor de localizat si revizuit.
<Sfatul expertului>
Intrebare: Daca doresc sa obtin numele unui fisier de includere din program, cum pot proceda?
Raspuns: Instructiunea require este prelucrata la incarcarea scriptului PHP asociat, inaintea legari valorilor la variabilele corespunzatoare, in consecinta, nu puteti folosi o expresie pentru, a specifica numele fisierului care urmeaza a fi inclus de catre o instructiune require.
Si totusi puteti folosi instructiunea include, care este o instructiune executabila ce determina evaluarea scriptului PHP dintr-un fisier specificat. De exemplu, instructiunea include din urmatorul program evalueaza fisierul f isier1:

$x = 1; include("fisier" . $x . ". inc");
La evaluarea fisierului de includere, instructiunile PHP pe care le contine sunt executate ca si cum ar fi aparut in textul scriptului apelant</Sfatul expertului>

Instructiunea corelata require_once asigura faptul ca fisierul specificat este inclus o singura data intr-un script dat. In cazul in care creati fisiere de includere care folosesc instructiunea require pentru a include continutul altor fisiere de includere, puteti gasi instructiunea require_once utila.

<Test „la minut">
• Scrieti o instructiune care include continutul fisierului subsol.inc in textul sursa curent.
• Scrieti o instructiune care include continutul fisierului subsol. inc in textul sursa curent, asigurandu-va ca fisierul este inclus o singura data. </Test „la minut">

<titlu>Definirea unei functii</titlu>
In afara de a utiliza functiile din biblioteca de functii a limbajului PHP, va puteti defini si folosi propriile functii. Pentru a defini o functie, respectati modelul urmator:

function nume_functie(nume_argument)
?
// aici se insereaza corpul functiei
?

In cadrul modelului, nume_functie este numele functiei, iar nume_argument este numele argumentului functiei, in PHP, numele functiilor nu prezinta sensibilitate la diferenta intre majuscule si minuscule; ca atare, f () si F() reprezinta referiri la aceeasi functie. Cuvantul cheie function, numele functiei si lista cu argumente alcatuiesc antetul functiei. Termenul de corp al functiei se refera la instructiunile incluse intre parantezele acolade care urmeaza dupa antetul functiei. Instructiunile din corpul functiei sunt executate atunci cand functia este apelata.
Daca doriti sa definiti o functie care nu are argumente, puteti omite nume_argument; daca doriti sa definiti o functie cu mai multe argumente, puteti include argumente suplimentare dupa nume_argument, fiecare argument fiind separat de vecinul sau prin intermediul unei virgule. Parantezele si numele argumentelor incluse intre acestea poarta numele de lista cu argumente. Ca exemplu, iata o functie care calculeaza aria unui dreptunghi:

function calculeaza_arie($inaltime,$latime)
? return$inaltime * $latime;
?

<nota>
Raspunsuri la test:
• require("subsol.inc");
• require_once("subsol.inc");</nota>

Lista cu argumente a functiei calculeaza_arie include argumentele $latime si $inaltime. Corpul functiei este alcatuit dintr-o singura instructiune; cu toate acestea, corpul unei functii poate contine un numar arbitrar de instructiuni. Daca doriti ca o functie sa returneze o valoare, trebuie sa determinati functia sa execute o instruc¬tiune return care furnizeaza valoarea respectiva. Instructiunea return determina sistarea executarii functiei; nu este necesar ca aceasta sa fie ultima instructiune fizica din corpul functiei. Daca definiti o functie care nu are nici o instructiune return, functia va returna valoarea speciala NULL.

<titlu>Apelarea unei functii definite de utilizator</titlu>
O functie definita de utilizator poate fi apelata in acelasi mod ca o functie incorporata. De exemplu, iata o instructiune care apeleaza functia calculeaza_arie:

$arie = calculeaza_arie(2,4);

Valorile argumentelor efective — 2 si 4 - le inlocuiesc pe acelea ale argumentelor formale din corpul functiei calculeaza_arie, care se comporta ca si cum ar fi fost scrisa astfel: return 2 * 4;

<Sugestie>
In PHP 3, definitia unei functii trebuie sa preceada linia de program care apeleaza functia, in PHP 4, definitia unei functii poate fi plasata fie anterior liniei de program care apeleaza functia, fie dupa aceasta. </Sugestie>

<titlu>Terminarea executiei unei functii</titlu>
O instructiune return determina sistarea executiei functiei care o contine. In cazul in care doriti sa sistati prelucrarea unui intreg script, puteti invoca functia exit(). Iata un exemplu simplu:

function stop()

? exit();
? echo „<BR>Unu…”; echo „<BR>Doi…”, stop(); echo „<BR>Trei!”;

Rezultatul acestui script include cuvintele unu si doi, dar nu si cuvantul trei. Prin apelarea functiei stop() se executa corpul functiei respective; la invocarea functiei, exit(), executia scriptului se incheie.

<titlu>Functii recursive</titlu>
Este posibil ca o functie din PHP sa se auto-apeleze. O functie care procedeaza astfel se numeste functie recursiva. Totusi, daca nu ati studiat informatica, este recomandabil sa nu scrieti functii recursive. Cu toate acestea, puteti scrie accidental o asemenea functie, deci este util sa stiti unele notiuni referitoare la aceasta.
Programul urmator defineste si invoca o functie recursiva simpla:

function recursor()
? return recursor();
?
$x = recursor();

La invocarea functiei recursor(), aceasta invoca imediat functia recursor(), care se auto-invoca instantaneu. Astfel, functia recursor() este invocata in mod repetat, pana cand se produce o eroare cunoscuta sub numele de depasire in sens pozitiv a stivei, (stack overflow). Daca programul dumneavoastra se incheie cu o depasire in sens pozitiv a stivei, o posibila cauza poate consta intr-o recursie incorecta.

<titlu>Definirea argumentelor prestabilite</titlu>
PHP 4 va permite sa definiti functii cu argumente prestabilite. Daca invocati o functie care are un argument prestabilit, dar nu furnizati nici o valoare pentru argumentul respectiv, argumentul ia o valoare prestabilita specificata. Iata un exemplu simplu:

function impozit_vanzari($cantitae , $rata = 0.0725)
? echo „<BR>cantitate=$cantitate”; echo „<BR>rata=$rata”; return $suma * $rata;
?

$cumparaturi = 123.45; echo „<BR>cumparaturi = $cumparaturi”;
$impozit = impozit_vanzari($cumparaturi,0.08); echo „<BR>impozit = $impozit”;

$cumparaturi = 123.45; echo „<BR>cumparaturi = $cumparaturi”;
$impozit = impozit_vanzari($cumparaturi); echo „<BR>impozit = $impozit”;

Functia impozit_vanzari preia doua argumente: un argument obligatoriu, denumit $cantitate, si un argument prestabilit, denumit $rata. Daca apelati functia si fur¬nizati un singur argument, valoarea argumentului respectiv se considera ca fiind valoarea argumentului $cantitate, iar valoarea 0.0725 se foloseste ca valoare a argumentului $rata. Astfel, la prima invocare a functiei, $rata are valoarea 0.08,

specificata drept al doilea argument al functiei.Cu toate acestea, la a doua invocare a functiei, $rata are valoarea 0.0725 deoarece este specificata valoarea unui singur argument.

<Sfatul specialistului>
Intrebare: Este posibil ca o functie sa aiba mai multe argumente prestabilite? Raspuns: Da, dar rezultatul este deseori confuz. De exemplu sa consideram urmatorul antet de functie: function doua_rele($timp = 1, $spatiu = 2)
Care trebuie sa fie rezultatul daca este invocata urmatoarea functie? x = doua rele(3);
Cu alte cuvinte, argumentul trebuie folosit ca valoare a variabilei $timp sau ca valoare a variabilei $spatiu? PHP are reguli care controleaza asemenea situatii, dar regulile respective pot fi derutante.Ca atare, cel mai bine este sa evitati problema prin definirea unui singur argument prestabilit si prin pozitionarea unui argument prestabilit pe ultima pozitie in lista cu arumente. </Sfatul specialistului>

<Test „la minut>
• Scrieti definitia unei functii care calculeaza aria unui cerc, daca se cunoaste raza acestuia.
• Scrieri definitia unei functii care are ca date de iesire blocul <HEAD> al unei pagini HTML, incorporand in cadrul unui bloc <TITLE> sirul dat ca argument al functiei. </Test „la minut>

<nota>
Raspunsuri la test
•function arie_circulara($raza)
? return 3.14159 * $raza *$raza
S
• function bloc_antet($titlu)
? echo "<HEAD>\n”; echo „<TITLE>$titlu</TITLE\n”> echo "</HEAD>\n";
S
</nota>

<titlu>Variabile si referinte PHP</titlu>
Variabilele PHP sunt de doua tipuri principale:
• Variabile globale
• Variabile locale
Variabilele globale sunt create in exteriorul oricarei functii, in timp ce variabilele locale sunt create in interiorul unei functii. Aceasta sectiune descrie variabilele globale si locale, precum si referintele, care constituie o modalitate speciala de referire la o variabila.

<titlu>Utilizarea variabilelor globale</titlu>
Asa cum s-a explicat anterior, variabilele globale sunt declarate in afara oricarei functii. Variabilele de formular reprezinta un tip important de variabile globale. Cu toate acestea, puteti crea o variabila globala atribuindu-i acesteia o valoare, atata timp cat instructiunea de atribuire respectiva nu se afla in interiorul corpului unei functii.
Totalitatea locurilor unde este accesibila o variabila se numeste domeniu de existenta al variabilei. In mod prestabilit, variabilele globale nu pot fi accesibile din interiorul corpului unei functii; cu alte cuvinte, domeniul de existenta al unei variabile globale, nu include corpurile functiilor. Daca doriti sa obtineti accesul la o variabila globala in cadrul unei functii, puteti extinde domeniul de existenta al variabilei prin speci¬ficarea numelui variabilei in interiorul unei instructiuni global. Instructiunea global are urmatoarea forma:

Global variabila1, variabila2, variabila3

Dupa cuvantul cheie global pot urma una sau mai multe variabile; fiecare variabila este separata de vecina sa prin intermediul unei virgule. Iata un exemplu care prezinta modul de functionare a instructiunii global:

function nu_este_global()
? echo „<BR>nuglobal: x=$x”;
? function este_global()
? global $x; echo „<BR>global: x=$x”;
?
$x = 1; nu_este_global(); este_global;

Daca rulati acest script, veti primi urmatoarele rezultate:

nuglobal: x = global: x = 1

Retineti ca variabila $x primeste numele unei valori in afara corpului oricareia dintre functii; cu alte cuvinte, $x este o variabila globala, in consecinta, variabila $x nu se afla in cadrul domeniului de existenta al functiei nu_este_global() si, in consecinta, instructiunea echo din cadrul functiei nu_este_global() nu afiseaza nici o valoare. Cu toate acestea, functia este_global() contine o instructiune global care extinde domeniul de existenta al variabilei $x; ca atare, instructiunea echo din cadrul functiei este_global() afiseaza valoarea variabilei $x.

<titlu>Utilizarea variabilelor locale si a variabilelor statice</titlu>
Domeniul de existenta, care descrie unde este disponibila o anumita variabila, reprezinta o importanta caracteristica a variabilelor. O alta caracteristica importanta este durata de viata, care descrie cand este disponibila o anumita variabila.
Variabilele globale sunt create atunci cand li se atribuie o valoare si exista pe durata unui program. Spre deosebire de acestea, variabilele locale sunt create la apelarea functiei asociate si sunt distruse la incheierea apelului la functia respectiva. In consecinta, variabilele locale sunt disponibile numai pe durata executiei functiei asociate.
Argumentele functiilor constituie un tip important de variabila locala. Cu toate acestea, puteti crea o variabila locala prin simpla atribuire a unei valori unei variabile din interiorul unei functii. Pentru a ilustra deosebirea dintre variabilele locale si cele globale, iata un script care defineste o variabila locala denumita $x si o variabila globala cu acelasi nume:

function are_local()
?
$x = 2; echo „<BR>In corpul functiei: x = $x”;
?
$x = 1 echo „<BR>In corpul scriptutlui: x = $x”; are_local(); echo „<BR>In corpul scriptului: x = $x”;

In cazul in care rulati acest script, veti primi urmatoarele rezultate:

In corpul scriptului: x = 1

In corpul functiei: x = 2
In corpul scriptului: x = 1

Remarcati diferenta dintre cele doua variabile, chiar daca numele variabilelor este acelasi. Domeniul de existenta al variabilei globale $x nu se extinde in interiorul corpului functiei are_local(), iar domeniul de existenta al variabilei locale $x nu se extinde dincolo de corpul functiei respective. Cu alte cuvinte, domeniile de existenta ale celor doua variabile sunt complet distincte si, ca atare, PHP nu poate confunda valorile variabilelor respective.

Uneori, doriti ca o variabila locala sa-si pastreze valoarea de la un apel al functie asociate la altul. Altfel spus, nu doriti ca variabila sa fie distrusa la incheierea apelului la functie. Puteti folosi instructiunea static pentru a specifica acest comporta¬ment. Forma instructiunii static este similara cu aceea a instructiunii global, cu exceptia utilizarii cuvantului cheie static in locul cuvantului cheie global. O varia¬bila afisata intr-o instructiune static este cunoscuta sub numele de variabila locala statica, sau, mai concis, variabila statica. Iata un exemplu care prezinta modul de utilizare a unei variabile statice:

function nu_este_static();
?
$x = $x ? 1; echo „<BR>x=$x
?

function este_static();
? static $x;
$x = $x ? 1; echo „<BR>x=$x
?

nu_este_static(); nu_este_static(); nu_este_static();

este_static(); este_static(); este_static();

Daca rulati acest script, veti primi urmatoarele rezultate:

x=1 x=1 x=1 x=1 x=2 x=3

Observati ca variabila locala $x, definita in cadrul functiei nu_este_static(), este creata din nou la fiecare apelare a functiei, in consecinta, valoarea sa este intotdeauna afisata ca fiind egala cu 1. Prin contrast, variabila statica $x, definita in cadrul functiei este_static(), isi pastreaza valoarea de la un apel al functiei la urmatorul; ca atare, valoarea sa creste de fiecare data cand este executata functia.
De asemenea, retineti ca domeniile de existenta ale variabilei locale $x si ale varia¬bilei statice $x sunt distincte; in consecinta, valorile celor doua variabile sunt dife¬rite, chiar daca variabilele au acelasi nume.

<titlu>Utilizarea referintelor (PHP 4)</titlu>

In mod prestabilit, argumentele transferate unei functii PHP sunt transmise prin valoare, ceea ce inseamna ca valorile argumentelor sunt copiate si functiile utilizeaza copii ale valorilor argumentelor lor, nu argumentele in sine. Ca o consecinta, o functie PHP nu poate modifica valorile argumentelor sale. Acest fapt este in general util, deoarece astfel functiile devin mai usor de inteles daca se limiteaza la a returna o valoare, fara a modifica valori.
Totusi, puteti stabili ca o functie sa aiba posibilitatea de a modifica valoarea unui argument, specificand ca argumentul sa fie transferat prin referinta. Cand un argu¬ment este transferat prin referinta, valoarea sa nu este copiata; functia lucreaza cu valoarea argumentului si are libertatea de a modifica acea valoare. Pentru a specifica faptul ca un argument urmeaza a fi transferat prin referinta, argumentul va fi prefixat cu un caracter ampersand (&). Puteti atasa acest prefix la argument in antetul functiei sau in apelul la functie.
Iata un exemplu care prezinta apelul prin valoare si apelul prin referinta:

function prin_valoare($x)
?
$x = 1;
?

function prin_referinta(&$x)
?
$x = 1;
?

$y = 0 prin_valoare($y); echo „<BR>\$y=$y”;

$y = 0 prin_valoare(&$y); echo „<BR>\$y=$y”;

$y = 0 prin_referinta($y); echo „<BR>\$y=$y”;

Daca rulati acest script, veti obtine urmatoarele date de iesire:

$y=0
$y=1
$y=1

Retineti ca scriptul contine doua functii, si anume prin_valoare () si prin_referinta(). Fiecare functie preia un singur argument, denumit $x. Antetul functiei prin_referinta() specifica faptul ca argumentul sau este transferat prin referinta; argumentul functiei prin_valoare() este transferat prin valoare, in conformitate cu practica prestabilita folositi in limbajul PHP.

Fiecare functie incearca sa modifice valoarea argumentului sau. Primul paragraf al programului invoca functia prin_valoare(), transferand argumentul prin valoare. In consecinta, functia lucreaza cu o copie a argumentului sau, iar valoarea variat $y nu se modifica.
Cel de-al doilea paragraf al programului invoca de asemenea functia prin_valoare(); cu toate acestea, foloseste un caracter ampersand pentru a determina transferul referinta al valorii variabilei $y. In consecinta, functia modifica valoarea argumentului sau, care se transforma din 0 in 1.
Cel de-a treilea paragraf al programului invoca functia prin_referinta(). Antetul functiei respective foloseste un caracter ampersand pentru a specifica faptul ca valoarea argumentului sau este transferata prin referinta, in consecinta, functia modifica valoarea argumentului sau, care se transforma din 0 in l.

<Sfatul specialistului>
Intrebare: De ce se folosesc referintele sau apelurile prin referinta?
Raspuns: Prin utilizarea referintelor se evita suprasarcina de copiere a valorilor argumentelor si implicit se obtine o viteza mai mare de executie a programului. Cu toate acestea, programele devin astfel mai dificil de inteles, iar| referintele sau apelurile prin referinta pot cauza erori de program. Cel mai indicat este sa evitati referintele, acolo unde este posibil, si sa definiti functii care returneaza valori, si nu functii care modifica valorile propriilor argumente. Cu toate acestea, este important sa intelegeti notiunile privind referintele, astfel incat sa puteti lucra cu programe scrise de programatori care nu respecta aceste sfaturi.
</Sfatul specialistului>

<Test „la minut">
• Scrieti instructiunea care este necesara intr-o functie pentru a se putea obtine accesul la o variabila denumita $greutate creata in afara functiei.
• Scrieti instructiunea care determina variabila locala $contor sa-si pastreze valoarea la mai multe invocari ale functiei asociate. </Test „la minut">

<titlu>Proiect 7-1: Revenire la formularul cu pei de contact</titlu>
In cadrul acestui proiect, veti crea din nou formularul HTML si scriptul PHP intitulat „Proiect 6-2". Formularul permite unui utilizator sa introduca date personale de categoria celor folosite intr-o agenda cu adrese de e-mail.
<nota>
Raspunsuri la test:
• global $greutate;
• static $contor;</nota>

Scriptul PHP valideaza datele de intrare introduse de utilizator, asigurandu-se ca au fost introduse date in campurile obligatorii.

<titlu>Scopurile proiectului</titlu>
• prezentarea modului de functionare a instructiunii include
• prezentarea modului de definire si creare a unei functii
• Prezentarea tehnicii racordurilor de program

<titlu>Pas cu pas</titlu>
1. Plasati urmatorul script PHP intr-un fisier denumit p-7-1.php si incarcati acest fisier in serverul dumneavoastra PHP:

<?php

include „p-7-1.inc”;

function validare_formular()
? global $porecla, $prenume, $nume, $email;

$erori = 0; if(!trim($porecla))
? echo „<BR><B>Porecla</B>este obligatorie.”;
$erori++;
?

if(!trim($prenume))
? echo „<BR><B>Prenumele</B>este obligatoriu.”;
$erori++;
?

if(!trim($nume))
? echo „<BR><B>Numele</B>este obligatoriu.”;
$erori++;
? if(!trim($email))
? echo „<BR><B>Adresa primara de e-mail</B>”.
„este obligatorie.”;
$erori++;
?

switch($erori)
? case 0: return TRUE;

case 1: echo „<BR><BR><BR>Va rugam folositi butonul „; echo „Back al browserului dumneavoastra”; echo „pentru a reveni la formular, „;

echo „corectati eroarea si”; echo „ reexpediati formularul.”; return FALSE;

default: echo „<BR><BR><BR>Va rugam folositi butonul „; echo „Back al browserului dumneavoastra”; echo „pentru a reveni la formular, „; echo „corectati eroarea si”; echo „ reexpediati formularul.”; return FALSE;

?
? function actualizare_baza_de_date()
? echo „<BR>Actualizeaza baza de date….”;
?
$ok = validare_formular(); if ($ok) actualizare_baza_de_date();

?>

</BODY>
</HTML>

2. Plasati urmatorul text HTML intr-un fisier denumit p-7-1 .inc si incarcati acest fisier in serverul dumneavoastra, plasandu-l in acelasi catalog ca si fisierul p-7-1 .php:

<HTML>
<HEAD>
<TITLE>Proiect 7-1</TITLE>
</HEAD>
</BODY>

3. Plasati urmatorul text HTML intr-un fisier denumit p-7-1 .html si incarcati acest fisier in serverul dumneavoastra, plasandu-l in acelasi catalog ca si fisierul p-7-1 .php:

<HTML>
<HEAD>
<TITLE>Proiect p-7-1</TITLE>
</HEAD>
<!--Fisier p-7-1.html -->
<H1>Informatii privind persoana de contact</H1>
<TABLE>

<TR>
<TD><B>Porecla:</B></TD>
<TD><INPUT TYPE=”TEXT” NAME=”porecla”></TD>
</TR>

<TR>
<TD>Titlu:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”titlu”></TD>
</TR>

<TR>
<TD><B>Prenume:</B></TD>
<TD><INPUT TYPE=”TEXT” NAME=”prenume”></TD>
</TR>

<TR>
<TD>Prenumele tatalui:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”prenume_tata”></TD>
</TR>

<TR>
<TD><B>Nume:</B></TD>
<TD><INPUT TYPE=”TEXT” NAME=”Nume”></TD>
</TR>

<TR>
<TD><B>Adresa de e-mail principala:</B><TD>
<TD><INPUT TYPE=”TEXT” NAME”email”></TD>
<TD WIDTH=”20”>&nbsp;</TD>
<TD>Adresa de e-mail secundara:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”emailsecundar”></TD>
</TR>

<TR>
<TD>Numele companiei:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”nume_companie”></TD>
</TR>

<TR>
<TD>Adresa firmei:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”adresa_firmei1”></TD>
<TD WIDTH=”20”>&nbsp;</TD>
<TD>Adresa la domiciliu:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”adresa_acasa”></TD>
</TR>

<TR>
<TD></TD>
<TD><INPUT TYPE=”TEXT” NAME”adresa_firmei2”></TD>
</TR>

<TR>
<TD>Oras:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”oras_birou”></TD>
<TD WIDTH=”20”>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD><INPUT TYPE=”TEXT” NAME=”oras_acasa”></TD>
</TR>

<TR>
<TD>Stat:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”stat_birou”></TD>
<TD WIDTH=”20”>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD><INPUT TYPE=”TEXT” NAME=”stat_acasa”></TD>
</TR>

<TR>
<TD>Cod postal:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”cod_birou”></TD>
<TD WIDTH=”20”>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD><INPUT TYPE=”TEXT” NAME=”cod_acasa”></TD>
</TR>

<TR>
<TD>Telefon:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”telefon_birou”></TD>
<TD WIDTH=”20”>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD><INPUT TYPE=”TEXT” NAME=”telefon_acasa”></TD>
</TR>

<TR>
<TD>Data nasterii:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”data_nastere”></TD>
</TR>

<TR>
<TD>Numele sotului/sotiei:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”nume_sot”></TD>
<TD WIDTH=”20”>&nbsp;</TD>
<TD>Numele copiilor:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”copii”></TD>
</TR>

<TR>
<TD>Ziua nuntii:</TD>
<TD><INPUT TYPE=”TEXT” NAME=”zi_nunta”></TD>
</TR>

</TABLE>

<BR>
<BR>
<BR>
<INPUT TYPE=”SUBMIT” VALUE=”Trimite”>
<BR>
<BR>
<INPUT TYPE=”RESET” VALUE=”Sterge datele”>

</FORM>
</BODY>
</HTML>

4. Alocati un timp studiului scriptului PHP. acordand o atentie speciala modificarilor operate in proiectul initial, prin care au fost incluse un fisier de includere si anumite functii, in particular, observati ca functia actualizare_baza_de_date () contine o singura instruc¬tiune echo. O asemenea functie, cunoscuta sub numele de racord, este folosita in faza de dezvoltare a programului, astfel incat programul sa poata fi rulat si testat chiar inainte de a fi fost scris in totalitate. Ulterior, corpul functiei actualizare_baza_de_date() va fi rafinat, urmand sa contina instructiuni care realizeaza efectiv actualizarea unei baze de date.

5. Orientati un browser Web spre adresa URL a fisierului HTML incarcat anterior. Ecranul browserului trebuie sa fie asemanator celui prezentat in continuare. Introduceti valori pentru mai multe campuri si apoi executati clic pe butonul Trimite.

<ecran>
<campuri>
Contact Information
NickName:
Title:
First Name:
Middle Name:
Last Name:
Primary Email: Secundary Email:
Company Name:
Office Address: Home Address:
City:
State:
Zip:
Phone:
Spouse Name: Childres Names:
Anniversary:
</campuri>
<buton> Submit</buton>
<buton>Clear the Form</buton>
</ecran>

6. La executarea scriptului, acesta verifica daca porecla, prenumele, numele si adresa de e-mail sunt prezente. Daca oricare dintre aceste campuri lipseste, scriiptul afiseaza un mesaj de eroare. Un rezultat caracteristic este prezentat in continuare.

<Ecran>
Primary email address is required

Please use your browser’s back button to return to the form, correct the error, and re-submit the form.
</Ecran>

<Test de evaluare>
1. Scrieti o instructiune care invoca functia test(), transferand valorile l si 2 ca argumente.
2. Scrieti o instructiune care invoca functia live(), transferand ca argumente valorile l si 2; asigurati-va ca nu se vor genera mesaje de eroare in timpul executiei functiei.

3. Scrieti o instructiune care include continutul fisierului antet.php ca parte a scriptului curent.
4. Scrieti definitia unei functii numite patrat(), care calculeaza aria unui patrat, daca este data lungimea unei laturi a patratului.
5. Scrieti o definitie a unei functii denumite contor(), care incrementeaza si returneaza valoarea unei variabile locale statice.
</test de evaluare>


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta