curs1_2php2013.ppt

131

Upload: adinasirghi2029

Post on 29-Nov-2015

40 views

Category:

Documents


0 download

DESCRIPTION

PHP

TRANSCRIPT

Page 1: curs1_2php2013.ppt
Page 2: curs1_2php2013.ppt

Scop curs

Prezentare a aspectelor de bază a:1.Tehnicilor de dezvoltare a site-urilor web dinamice 2.Tehnicilor de utilizare a bazelor de date pentru memorarea informaţiilor

•PHP–Hypertext Preprocessor•MySQL–My Structures Query Language

Premise:CSS—Cascading Style SheetsHTML—HyperText Markup Language

Page 3: curs1_2php2013.ppt

Stuctura curs

Cursuri de prezentare a PHPCursuri de prezentare a MySqlCursuri de prezentare FrameworkZend

Teorie ŞI Practică

Page 4: curs1_2php2013.ppt

Materiale de bază a cursurilorCărţi 1. Larry Ullman ,PHP6 and MySQL 5 for Dynamic Web Sites2.Luke Welling, Laura Thomson,Dezvoltarea aplicatiilor Web cu PHP si MySQL,Teora,20053.Julie C Meloni,Invata singur PHP,MySQL si Apache editura Corint,20044.Jay GreenSpan, Brad Bulger,MySql,PHP Database Aplications,M&T Books,20015. Stanca Liana, Suportul tehnologic al afacerilor electronice,Presa Universitara Clujeana,2007

Materiale webHTTP Made Really Easy - http://www.jmarshall.com/easy/http/HTML:http://www.w3schools.com/htmlPHP:http://www.w3schools.com/phpPhpWebSite project, Appalachian State University, 2004-2006, http://phpwebsite.appstate.edu.SQL:http://www.w3schools.com/sql Manual for the MySQL Database System, Version 5.0, http://www.mysql.com/.

slide-uri cursuri

Page 5: curs1_2php2013.ppt

Cerinţe examen

1.Implementare Librărie =>revistă Chip 20% minim nota 52.examen practic PHP-MySQL(săpt.14)-40% minim nota 53.examen scris sesiune-35% minim nota 54.efectuarea temelor de laborator –se verifică şi contează la examen neefectuare temelor şi neprezentarea la timp conduce la scăderea a 2 puncte din nota finală=> SE PREZINTĂ FĂRĂ ÎNTÂRZIERE (5%)- minim nota 5

Page 6: curs1_2php2013.ppt

La ce ajută cursul

Curs de iniţiere în programare web şi de înţelegere a conceptelor de bază din programarea web1.(X)HTML pot fi utilizate numai pentru pagini web statice (fără interactivitate cu utilizatori)2.PHP poate procesa inputurile oferite de utilizatori şi generează dinamic ca rezultat al prelucrărilor un cod HTML pe baza informaţiilor stocate în baza de date.3.MySql- oferă toate instrumentele necesare pentru munca cu o baza de date4.PHP+MySQL este probabil cel mai utilizat instrument de creare a paginilor web dinamice (Facebook, YouTube, Wikipedia, Google Search toate aceste site-uri sunt create cu acest tool)5.PHP+MySql sunt OPEN SOURCE

Page 7: curs1_2php2013.ppt

Ce vă oferă cursul

1. O înţelegere a conceptelor de bază a diferitelor aspecte și tehnologii legate de dezvoltarea web

2. Experienţă în dezvoltarea paginilor web interactive3. Cunoaşterea limitelor acestui domeniu (posibilități și

limitări ale site-uri web dinamice)

Page 8: curs1_2php2013.ppt

IntroducereIntroducereBill Gates, la sfârşitul anului 1999, afirma că:

„Dacă anii '80 au fost caracterizaţi de implementarea calităţii, iar anii '90 de reengineering, anii 2000 vor fi anii vitezei. Este vorba despre viteza de derulare a afacerilor, despre modul în care accesul la informaţie va altera stilul de viaţă al consumatorilor. Creşterea calităţii şi transformarea proceselor economice se vor derula cu o viteza mult sporită, astfel încât în momentul în care viteza depăşeşte o anumită limită, însăşi natura afacerii se modifică.” Gates1999.

Page 9: curs1_2php2013.ppt

Ceea ce a pornit ca un canal alternativ pentru marketing, s-a transformat rapid într-un sistem economic complet fiind alcătuit din:

• comunicaţii atot-cuprinzătoare, reţele de comunicaţii la preţuri scăzute, care folosesc tehnologiile şi standardele Internet;

• aplicaţii şi capital uman care permit conducerea afacerilor prin această infrastructură de reţele;

• pieţe electronice interconectate care operează folosind infrastuctura de reţele şi aplicaţii existente la ora actuală în lume;

• producători şi intermediari care furnizează o mare varietate de produse şi servicii pentru a facilita eficienţa şi lichiditatea;

• un cadru legal, încă în formare, pentru conducerea afacerilor electronice.

Page 10: curs1_2php2013.ppt

Reţeaua Internet - concept şi evoluţieReţeaua Internet - concept şi evoluţie

Internet-ul este definit ca o colecţie largă de reţele sau ca o “reţea de reţele”

În concepţia economiştilor [Godeluck2002] apariţia Internet-ului a schimbat radical natura creşterii economice ducând la apariţia unei noi economii bazate pe calităţi intrinseci ale reţelei şi concentrate asupra unui nou gen de întreprinderi.

Bill Cates afirma în anii ‘90: Internet-ul este un val de flux. El va mătura aproape toate sectoarele industriale, înnecându-i pe cei ce nu vor învăţa să înoate în valurile sale. Internetul va impune o nouă ordine industrială: orientarea spre puterea de consum, consumatorii nu producătorii devin ţinta organizaţiilor.

Page 11: curs1_2php2013.ppt

Istoric InternetJohn Heilemann ¬The true story of the internet browser warshttp://www.youtube.com/watch?v=W_Gi-wYpEMM

->La baza Internetului se află cercetările demarate de ARPA în domeniul tehnologiilor de reţea şi telecomunicaţiilor în 1958 ->În anul 1990 se inaugurează WWW de către Tim Benners Lee impreună cu CERNCa si data de aparitie a Web-ului si HTML-ului se considera ziua de 6 august 1991, cand Tim Berners-Lee a creat prima pagina Web. La acea dată invetatorul dorea ca toată lumea să poată edita în browser nu doar să citească din el...->1998 este lansat XML pentru a facilita compatibilitatea între diferite sisteme de computereWeb 1.0- era read-onlyWeb 1.5: era dotcom-ului ( .com ) s-au diversificat serviciile oferite, au aparut milioane de pagini cu stiri, care erau actualizate des; CMS-urile - sisteme de management a continutului. Oricine putea sa-si creeze propria pagina web; fie o concepea personal sau cu ajutorul CMS-urilor gratuite sau open source existând si posibilitatea gazduirii gratuite. ->2004 Tim O'Reilly, care a inventat expresia "Web 2.0”, a descris-o ca valorificarea/exploatarea inteligenţei colective

Page 12: curs1_2php2013.ppt

Web2.0 ->persoanele trebuie să colaboreze nu să lucreze singure.Web 2.0-> nu a adus nici o tehnologie nouă.Tehnicile folosite de Web 2.0 sunt o combinație de tehnici care datează încă de la sfârșitul anilor 1990, dar care abia în zilele noastre (2007) cunosc o răspândire deosebit de mare:1.Application Program Interfaces (APIs) pentru servicii web2.Asynchronous Javascript and XML (Ajax), ca urmaș al tehnicilor de gen XmlHttpRequest3. Content syndication - servicii de abonamente, de exemplu RSS - abonamente la "Ultimele noutăți"4. Integrarea softwareului de natură socială, ca de exemplu bloguri și wiki-uri->septembrie 2005 articolul Tim O'Reilly What Is Web 2.0 - Design Patterns and Business Models for the Next Generation of Software, fundamenteaza conceptele Web 2.0.Termenul de Web 2.0 a aparut in 2004, in timpul unui brainstorming intre O'Reilly Media si MediaLive International, =>Site-ul Web2.0 Conference se poate vizita, se pot vedea temele principale ale prezentarilorDeci, Web 2.0 se concentrează pe mai multe teme majore, inclusiv AJAX, rețele sociale, folksonomies, colaborare ușor, social bookmarking, și de partajare mediaDeci, web 2.0 este o schimbare fundamentală atât în modul în care sunt create site-uri web si, mai important, modul în care oamenii interacționează între ei.

Page 13: curs1_2php2013.ppt

"web 3.0”- termen introdus de jurnalistul John Markoff de la New York Times-reprezintă un viitor deci nu se ştie exact ce? - a treia generație de servicii bazate pe internet, care împreună alcătuiesc ceea

ce ar putea fi numit" web inteligente "- cum ar fi cele care folosesc web-ul semantic, microformate , căutare limbaj natural, extragerea datelor, masina de învățare, agenți de recomandare, și tehnologii de inteligenta artificiala -. care pun accentul pe înțelegerea mașină-facilitat de informații, în scopul de a oferi o experiență de utilizare mai productivă și mai intuitiva “

-poate fi definită ca o a treia generație de web a permis convergență a mai multor tendințe-cheie de tehnologie în curs de dezvoltare: Ubiquitous ConnectivityBroadband adoptionMobile Internet accessMobile devicesNetwork ComputingSoftware-as-a-service business modelsWeb services interoperabilityDistributed computing (P2P, grid computing, hosted “cloud computing” server farms such as Amazon S3)Open TechnologiesOpen APIs and protocolsOpen data formatsOpen-source software platformsOpen data (Creative Commons, Open Data License, etc.)

Page 14: curs1_2php2013.ppt

Open Identity

Open identity (OpenID)Open reputationPortable identity and personal data (for example, the ability to port your user account and search history from one service to another)

Web-ul inteligent1.Tehnologiile Semantic Web (RDF, OWL, SWRL, SPARQL, platforme de aplicatii semantice, și datastores Protecția bazate, cum ar fi triplestores, tuplestores și baze de date asociative)2.Baze de date distribuite:sau "Baza de date World Wide" (wide-area interoperabilitatea baze de date distribuite datorită tehnologiilor Semantic Web)3.Aplicații inteligente (procesarea limbajului natural, masina de învățare, raționament mașină, agenții autonomi)

Deci, Web 3.0 va fi mult mai conectat, deschis, și inteligent, cu tehnologii semantice web, baze de date distribuite, procesarea limbajului natural, machine learning, machine reasoning, and autonomous agents.

Page 15: curs1_2php2013.ppt
Page 16: curs1_2php2013.ppt

3 Prezentarea tehnologiei pentru dezvoltarea pe server

Tehnologiile disponibile pentru dezvoltarea pe server sunt variate. Toate au însă aceleaşi scopuri, şi anume, să transfere acţiunile de prelucrare a informaţiilor pe un calculator mai perfomant cu o putere de memorare şi de prelucarea a datelor mult mai mare decât a altor calculatoare din reţea, care să prezinte un nivel de securitate mai ridicat şi să centralizeze operaţiile de întreţinere.

Serverul este indicat pentru a stoca o mare parte din componente, piese, rutine, scripturi. Realizarea unei conexiuni la server poate fi una dintre cele mai importante decizii aflate la baza creării unei aplicaţii electronice reuşite.

Aspecte importante legate de realizarea conexiunilor la server sunt:

Viteza întârzierea cu care serverul răspunde la o cerere făcută de un browser Web.

Securitatea poate fi abordată din două puncte de vedere, şi anume, securitatea site-ului şi securitatea conţinutului acestuia.

Scalabilitatea se referă la capacitatea unui site Web de a accepta un număr diferit de utilizatori, cu timpi de răspuns şi performanţe similare.

Page 17: curs1_2php2013.ppt

Serverul web are rolul de a servi fişiere stocate în rădăcina lui (de exemplu pentru web server-ul Apache strucutră de directoare este: /var/www/html/)Servirea unui fişier se efectuează dacă fişierul specificat îndeplineşte următoarele condiţii :

1.există, 2.este accesibil de către serverul web 3.drepturile de acces nu interzic acest lucru.

În cazul neîndeplinirii uneia dintre aceste condiţii, serverul va trimite un cod de eroare sau o pagină predefinită care să informeze despre eroarea apărută.

Principiul de funcţionarea a site-urilor dinamice :fişierele pe care serverul web le serveşte în general, depind de alte programe externe de generare de cod (CGI, ASP, JSP, PHP). Fişierele care necesită astfel de prelucrări vor fi generate de programul extern, a cărui rezultat va fi un fişier HTML nou creat. Acest fişier va fi transferat serverului web, pe care acesta poate să-l servească ca pe orice alt fişier.

Protocolul HTTP defineşte modul prin care vor dialoga clientul şi serverul. Clientul va trimite o cerere (o comandă) HTTP în mod text simplu (exemplu: GET, POST, HEAD, PUT) prin care informează serverul despre acţiunea pe care vrea să o întreprindă.

Limbajul de marcare prin hipertext (HTML) a fost acceptat pe scară largă şi a fost adoptat ca mecanism pentru diseminarea informaţiei în World Wide Web.

Page 18: curs1_2php2013.ppt

O sesiune de transfer a datelor cu ajutorul protocolului HTTP, se desfăşoară astfel: 1.se realizează o conexiune client-server;2.clientul, adică browser-ul, lansează o cerere;3.serverul furnizează clientului răspunsul la cererea formulată;4.serverul încheie conexiunea.

TCP (Transmission Control Protocol) are ca funcţie primară schimbul corect de pachete de date între nodurile unei reţele, adică corectarea erorilor şi secvenţierea transportului.

IP (Internet Protocol) asigură transmiterea de pachete de la sursă la destinaţie; sursa şi destinaţia fiind calculatoare gazdă (host computer) identificate prin adrese de lungime fixă. Sursa şi destinaţia se pot găsi în reţele diferite astfel un pachet poate străbate câteva reţele până la destinaţie.

Protocolul TCP/IP a apărut ca urmare a dorinţei de a interconecta fără probleme mai multe tipuri de reţele, iar activitatea de transmisie a datelor să nu fie afectată de distrugerea sau defectarea unei părţi a reţelei. Acesta are funcţia primară de dirijare a pachetelor de date de la sursă la destinaţie devenind astfel un standard pentru reţelele de pe întreaga planetă.

SMTP (Simple Mail Transfer Protocol) este un protocol simplu, folosit pentru transmiterea mesajelor în format electronic pe Internet devenind standardul pentru comunicaţiile globale prin poşta electronică.

Page 19: curs1_2php2013.ppt

Serviciul WWW modalitate de funcţionare

Site -un ansamblu de pagini Web, între care existã create legãturi, astfel încât, pornind de la o primã paginã a cãrei adresã reprezintã adresa site-ului, este posibilã navigarea prin toate paginile acestuia.

Conectarea la un site Web determinã operatii: 1browser-ul stabileste o conexiune TCP/IP cãtre server. Protocolul la nivel de aplicatie utilizat este

specificat numãr de port. De exemplu, protocolul HTTP are asociat portul 80; 2.browser-ul emite o cerere HTTP cãtre server, cerere care este constituitã din:

o linie de cerere (request-lineo linie de cerere (request-line)) formatã dintr-o comandã HTTP, urmatã de un URL si de versiunea protocolului utilizat;

un antet (request-header)ce contine informatii despre cerere si despre clientul care executã cererea; corpul cererii;

3.server-ul Web receptioneazã cererea, o interpreteazã si emite un rãspuns cãtre browser. Rãspunsul este constituit din: un cod de stare, care descrie modul de finalizare a cererii si o scurtã

descriere a codului. Codurile sunt formate din trei cifre, si au urmãtoarele semnificatii: - codurile care încep cu 1 sunt coduri de informare, - codurile care încep cu 2 sunt coduri de succes, - codurile care încep cu 3 sunt coduri de redirectare, - codurile care încep cu 4 sunt coduri de eroare client, iar codurile care încep cu 5 sunt coduri de eroare server,

un antet (response-header) ce contine informatii despre resursa solicitatã, eventual alte declaratii necesare pentru livrarea rãspunsului;

un corp, format din datele transferate. Aceastã succesiune de operatii poartã numele de tranzactie.

Page 20: curs1_2php2013.ppt

Tehnologia client/server pe care se bazeazã serviciul Web este de douã tipuri:

•pe douã niveluri- Clientul este responsabil în primul rând cu prezentarea datelor cãtre client, iar serverul este responsabil în primul rând de furnizarea serviciilor de date cãtre client.

Page 21: curs1_2php2013.ppt

pe trei niveluri: a apãrut datoritã complexitãtii aplicatiilor care puteau fi desfãsurate pentru terti sau mii de utilizatori.

Page 22: curs1_2php2013.ppt

Tipuri de site-uriSite-uri Web statice1.Un client (browser) cere un document HTML2.Serverul trimite clientului documentul HTML cu toate fişierele necesare lui3.Clientul afişează documentul HTML formatat în concordanţă cu CSS

Page 23: curs1_2php2013.ppt

Site-uri Web dinamice sunt creaturi flexibile și puternice, descrise mai exact ca aplicații decât doar site-uri. Site-uri Web dinamice:1.au o "memorie", pentru a permite înregistrarea de utilizator și autentificare în site-urile de e-commerce, și procese similare2.au aproape întotdeauna formulare HTML, astfel încât oamenii pot efectua căutări, oferă feedback-ul, etc.3.au interfețe în care administratorii pot gestiona conținutul site-ului4.Sunt mai uşor de creat, modificat şi menţinut în timp decât site-urile web statice.

Exista multe tehnologii disponibile pentru crearea de site-uri Web dinamice. ASP.NET (Active Server Pages, de la Microsoft), JSP (Java Server Pages), ColdFusion, Ruby on Rails, și PHP. Site-uri Web dinamice nu se bazează întotdeauna pe o bază de date,dar în cele mai multe cazuri un site web are o bază de date ataşată. Aceasta de cele multe ori este dezvoltată de MySQL .

Page 24: curs1_2php2013.ppt

Site-uri web dinamice

1.Un client cere un document HTML ce include un formular2.Utilizatorul completează formularul şi click pe submit acţiune ce trimite datele înapoi la server3. Serverul rulează un program PHP care depistează codul PHP, îl execută şi 4. Rezultatul codului PHP este o pagină HTML pe care serverul o trimite browserului – clientului web iar acesta o afişează utilizatorului.

Page 25: curs1_2php2013.ppt

Browser-ul întotdeauna primeşte text nu cod executabil1.HTML este text2.CSS este text3.Rezultatul unui script PHP este text( Browser-ul nu vede niciodata codul PHP)

Page 26: curs1_2php2013.ppt

Reguli generale în dezvoltarea web

1. Utilizarea standardelor pentru a scrie un text valid CSS şi (X)HTML. Etc.

2. Separarea conţinutului de formatare şi de funcţionalităţi

Conţinut: XHTML Formatare: CSS

Funcţionalităţi: PHP

Proiectare pe hârtie a applicaţiei şi apoi implementarea codului sursă (acestă regulă este general valabilă în dezvoltarea de produse program)

Page 27: curs1_2php2013.ppt

HTML recapitulare-Limbaj HyperTextMarkup

– text simplu;-folosit pt crearea paginilor web-defineşte structura documentului - fişiere CSS

HTML elementUn element XHTML este codat cu un tag

structura: <element_name>content</element_name>Exemple:

- paragraph:<p>Este un paragraph</p>– header:<h1> Este un header</h1>- elemente goale: line break: <br />- elemente cu atribute :

<element attribute=“value”>content</element>Exemple: elemente cu atribute:– image: <img src=“images/flori.gif” />– table:<table summary=“Acesta este planul pt curs”>…</table>

Page 28: curs1_2php2013.ppt

Elemente HTML bine formatate-Toate elementele şi atributele sunt scrise cu litere mici-toate valorile atributelor trebui incluse între ghilimele-toate elementele care includ elemente goale trebuie terminate- toate elementele trebuie să fie corect imbricate =>LIFO

Beneficii ale scrierii codului HTML conform standardelor sunt:-Maximizarea compatibilităţii cu diferite browsere-Adaptarea uşoară a modului de afişare a conţinutului în forma tipică dispozitivului folosit (desktop, mobile, etc)- mentenanţă uşoară a site-urilor- facilitează dezvoltarea codului de către echipe de programatori- facilitează înţelegerea codului de către diverse persoane în timp

Validarea codului HTML se face cu:1.http://validator.w3.org2.HTML validator de la Firefox

Page 29: curs1_2php2013.ppt

Tag-uri cunoscute• Headings: <h1> </h1> … <h6> </h6>• Paragraph: <p> </p>• New line: <br />• Bold şi italics: <b> </b>, <i> </i>• Liste ordonate:<ol> </ol>• Liste neordonate:<ul> </ul>• Elementele listelor:<li> </li>• Legături: <a href=“http://link.com”>text</a>• Legatura mailto:<a href=“mailto:[email protected]”> [email protected] </a>• Imagini:<img src=“images/pic.jpg” alt=“pic” />• Tabele: <table> </table>, <tr> </tr>, <th> </th>, <td> </td>

Page 30: curs1_2php2013.ppt

Exemplu de site HTML<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type” content="text/html; charset="utf-8"> <title>Pagina de început </title> </head> <body> <h1>Bine ati venit</h1> <p>Website for the course <a href="http://www.ubbcluj.ro/cours/PPW/C2013“>PPW</a></p> </body></html>

Page 31: curs1_2php2013.ppt

Estetica, gradul de utilizare a site-ului web nu este prioritar acestui curs: se pune accet pe un cod HTML curat, simplu şi basic

-se evită tagurile: <font> se utilizează pentru formatare CSS-se separă conţinutul (HTML) de formatare (CSS) pt că CSS oferă mai multe posibilităţi-se permite schimbarea interfeţei site-ului schimbând un singur fişier-se evită utilizarea frame-se evită schimbarea culorilor link-urilor-se dă titlul unei pagini HTML întotdeauna-se încearcă să se verifice aspectul site-ului în cel puţin 2 browsere (de ex. Firefox şi Mozila, etc.)- se încearcă să se verifice aspectul site-ului pe un dispozitiv mobil(iPhone, Android)

Page 32: curs1_2php2013.ppt

Straturi şi tehnologii comune în documentele web

Page 33: curs1_2php2013.ppt

Formulare HTML

-permit utilizatorului să trimită date spre server.-Exemple: login; căutări; e-mail; chestionare

-informaţiile de pe formular se vor procesa pe server de către un program(de ex. PHP script)

-http://www.w3schools.com/html/html_forms.asp#

Page 34: curs1_2php2013.ppt

Cum funcţionează.....

1. Se deschide motorul de căutare preferat

2. Se scrie cuvântul căutat3. La o acţiune de genul click

pe buton sau Enter se trimite cuvântul

4. Serverul web procesează cererea şi întoarce rezultatul

Page 35: curs1_2php2013.ppt

Reguli de creare a formularelorReguli de creare a formularelor

1.Identificarea informatiilor care se vor prelua cu ajutorul formularului si stabilirea formei de prezentare a acestora2. Structurarea informaţiilor în mai multe întrebări elementare3. Obiectivele care stau la baza crearii unui formular trebuie sa furnizeze raspunsuri la intrebarile:ce informaţii se doresc să se obţina de la utilizator? Cât timp vor petrece utilizatorii pentru completarea formularului?4.Formularul sa fie usor de completat pentru a incuraja utilizatorii sa le completeze.5. Folosirea corecta a culorilor, scrierea corecta a etichetelor si intrebarilor din formular.6. Folosirea de headere care sa delimiteze grupurile de controale pe clase de informatii. (utilizarea de linii orizontale sau elementul (X)HTML <fieldset> pentru a realiza grupurile de informatii). 7. Evidentierea cuvintelor cheie pe baza carora s-a creat formularul.8. Specificarea ordinii de completare a datelor in formular9. Folosirea săgeţilor pentru a ajuta utilizatorii să navigheze în pagină, într-o anumită ordine10. Structurarea controalelor de pe formular astfel incat acesta sa poata fi vizualizat corect indiferent de rezolutia monitoarelor.11. Folosirea corecta a controalelor (daca se doreste doar bifarea unei sg optiuni at butoane radio se vor folosi si nu checkbox care permit selectarea mai multor optiuni)12. Sa nu existe greseli de ortografie 13. Atasarea unei pagini de confirmare - primire a datelor pe care le-a completat utilizatorul. Prin aceasta pagina ,se precizeaza utilizatorului ca formularul a fost bine completat si primit. Folosind un cod (X)HTML de forma: <input type=”hidden” name=”succes”value=http://www.... />.

Page 36: curs1_2php2013.ppt

De ce este nevoie pt a realiza toate acestea...

I. Un FORMULAR HTML-cu care se adună datele;-se transmit datele la un eveniment( click pe un buton, enter, etc.)

II. Un SCRIPT care să proceseze datele -PHP,ASP,PERL…- va citi datele şi le va procesa pe server- fişierul HTML rezultat este transmis clientului înapoi

Page 37: curs1_2php2013.ppt

Elementele Formularului

<form action=“link”> … </form>

Grupuri de elemente ce pot apărea pe un formular sunt:1. controale 2. orice imagine sau text3. nu poate conţine un alt formular.

Elementele de pre un formular au diferite atribute• parameter=“value”• parameter=‘value’

Page 38: curs1_2php2013.ppt

Formularul

Page 39: curs1_2php2013.ppt

Formular

Definire variabilă

1. Atributul name: se defineşte numele variabilei;2. Atributul id: la fel ca atributul name3. Ce fel de tipuri de date conţine variabila4. Serverul vede: firstname=Viorel

Page 40: curs1_2php2013.ppt

Variabile1.Numele variabilelor sunt folosite de scripturile PHP pentru a avea acces la conţinutul acestora2. Numele variabilelor trebuie să fie unic3. Se acordă nume sugestive variabilelorDe ex:

tricoufavorit:OK tricou_favorit:OK a:groaznic

Obs:Numele variabilelor trebuie să înceapă cu litere din intervalul ([A-Za-z]) şi

pot fi urmate de oricâte litere, cifră din intervalul ([0-9]) sau liniuţă de subliniere (“_”)

Page 41: curs1_2php2013.ppt

Input types

Page 42: curs1_2php2013.ppt

Atribut formular=>action

action=“target”

1.Este obligatoriu 2.Defineşte cum se vor prelucra datele3. Acţiunea poate:

- să fie un script: de exemplu: action=“doSomething.php”-să fie un link mailto: de exemplu: action=mailto:[email protected]ă se apeleze pe el însuşi: de exemplu: action=“#”

Page 43: curs1_2php2013.ppt

Atribut formular=>method

Se stabileşte cum se va trimite informaţiaPOST sau GET

POST1.numai serverul vede informaţia2.mai securizat

GET1. datele se întorc în URL2. util pentru formulare de căutare

Page 44: curs1_2php2013.ppt

Atribut formular=>enctype

Se defineşte cun se codează(encoded) informaţia

datele se codează implicit astfel:1. spaţiile se transformă cu “+”2. caractere speciale se transformă la ASCII

value=“”• “application/x-www-form-urlencoded”: implicit• “text/plain”: transformă spaţiile în “+”, dar nu şi caracterele speciale• “multipart/form-data”: necesare la încărcarea fișierelor

Page 45: curs1_2php2013.ppt

Elementul <input />

Există mai multe astfel de obiecte dar le studiem pe acestea

Page 46: curs1_2php2013.ppt

<input type=“text”/>

Un singur cuvânt sau o linie de textAtribute:type=“text”• name=“variableName” (obligatoriu)• id=“variableName” (avansat.Face posibilă legarea acestui element de un script)• value: definirea valorilor implicite • size: mărimea textbox-ului• maxlength: lungimea maxină admisă

<form action=“search.php” method=“post”> <input type=“text” name=“search” value=“Scrie text de căutare ” /> <input type=“submit” value=“Search” /> </form>

Page 47: curs1_2php2013.ppt

<input type=“submit”/>

1. Afişează în browser un buton2. Transmite datele de pe form la server3. Nu are atribute obligatorii4. value=“” afişează text pe buton

<input type=“submit” value=“Search” />

Page 48: curs1_2php2013.ppt

<input type=“radio” />

Permite selectarea unei singure valori pentru fiecare “name”

• checked=“checked” se setează optiunea implicită care să apară ca selectată

value=“” (obligatoriu)• valoare care se trimite la action=“…”

<input type=“radio” name=“nationalitate” value=“Roman” checked=“checked” /> <input type=“radio” name=“nationalitate” value=“German” /> <input type=“radio” name=“nationalitate” value=“Austriac” />

Page 49: curs1_2php2013.ppt

<input type=“hidden”/>Elemente ascunse nu sunt vizibile pe formularSe foloseşte pentru:

1. la setarea unei variabile implicite2. se stabileşte dacă un produs este la ofertă

<form action=“oferta.php”> <input type=“hidden” name=“oferta” value=“da” /> </form>

Page 50: curs1_2php2013.ppt

<input/>attributes

Page 51: curs1_2php2013.ppt

<select>and<option><select>and<option> se combină pentru a crea meniu dropdown

<form …> <select name=“Universităţi”> <option value=“UBB”>Universitate Babeş-Boloyai</option> <option value=“UTCN”> Universitatea Tehnică</option> <option value=“UMV”> Universitate de Medicină Veterinară</option> </select> </form>

Page 52: curs1_2php2013.ppt

<select>attributesname=“”

nu este obligatorie, dar recomandatamultiple=“multiple”

permite să selectați mai mult de un element

size=“” numărul defineşte câte elemente sunt afişate

<option>attributesvalue=“…” nu este obligatoriuselected=“selected” inidică ce element este selectat implicit

Page 53: curs1_2php2013.ppt

Emails received from a form

<form action=“mailto:[email protected]” method=“post” enctype=“text/plain”> <p>Nume întreg: <br /> <input type=“text” name=“name” /> </p> <p>Feedback: <br /> <textarea name=“feedback” rows=“10” cols=“10”></textarea> </p> <p> <input type=“submit” value=“Send” /> </p> </form>

Page 54: curs1_2php2013.ppt

HTML5Noi controale de forma: calendar, date, time, e-mail, url si search.

HTML 5 include elemente noi pt a realiza:- o structurarea mai buna a documentelor;- obiecte pt desen mai performante-posibilitatea de a adauga continut media- un handling mai bun pt formulare.

Page 55: curs1_2php2013.ppt

<Input/>-atributul autocomplete

Permite realizarea unei completări automatefunctioneaza cu <form> si urmatoarele tipuri de <input>:text, search, url, telephone, email, password, datepickers, range, and color.Principiul de funcţionare:=>utilizatorul începe să tasteze într-un câmp ce prezinta atributul autocomplet, browser-ul trebuie să afişeze opţiuni pentru a umplere:

<form action="autocomplet.php" method="get" autocomplete="on">First name:<input type="text" name="fname" /><br />Last name: <input type="text" name="lname" /><br />E-mail: <input type="email" name="email" autocomplete="off" /><br /><input type="submit" />

Page 56: curs1_2php2013.ppt

<Input/>-atributul autofocus

un câmp ar trebui să primeasca focusul în mod automat in momentul in care o pagină este încărcată.Obs:

Atributul autofocus funcţionează cu toate tipurile de <input>.

<form action="autofocus.php" method="get">User name: <input type="text" name="user_name" autofocus="autofocus" /><input type="submit" /></form>

Page 57: curs1_2php2013.ppt

Instalare XAMPP

Pachetul XAMPP conţine: Apache + PHP + MySQL + phpMyAdmin

Acest pachet nu necesită decât o instalare simplă (ca a oricărui program) şi se poate descărca de la adresa:

http://www.apachefriends.org/en/xampp.html

după descărcare executaţi-l pentru a porni instalarea. Se alege limba “English” apoi apăsaţi pe butonul OK!

Page 58: curs1_2php2013.ppt

După aceea se apasă pe butoanele: “Next >”, “Next >” iar apoi se aleg opţiunile “Install Apache as service” şi “Install MySQL as service” pentru ca atât serverul Apache cât şi cel de MySQL să porneasca odată cu Windows-ul (adică atunci când se deschide calculatorul).

Apoi, apăsaţi pe butonul “Install” şi aşteptaţi să se instaleze.

Page 59: curs1_2php2013.ppt

După aceea apare pe ecran un mesaj prin care cel care instalează este intrebat dacă doreşte să lanseze panoul de control; se apasă butonul “Yes”.

Page 60: curs1_2php2013.ppt

Problemele la instalarea serverului Apache sau MySql:- acest server se instalează pe portul 80, iar acesta este posibil să fie folosit de un alt server web (posibil că s-a încercat să se instaleze manual ori se foloseşte deja un alt pachet similar celui XAMPP) ori de un alt program instalat pe PC.- s-a omis ca la instalarea pachetului XAMPP să se bifeze opţiunea “Install Apache as service”, şi, prin urmare acesta nu va rula odata cu Windows-ul.- este activ un Firewall şi acesta blocheaza Apache-ul să ruleze.Dacă totuşi se întâmplă ca unul din servere să se manifeste aşa, se activează butonul “Start” din dreptul fiecăruia.http://www.apachefriends.org/en/xampp-windows.html#1167

Page 61: curs1_2php2013.ppt
Page 62: curs1_2php2013.ppt

1. PHP este un server-side. 1.1. deci tot ceea ce face PHP apare pe server. 1.2. deci este nevoie de Apache sau Microsoft IIS

( Internet Servicii de informații ) =>toate script-urile PHP trebuie să fie accesate printr-un URL ( http://-something )

2.PHP este o tehnologie cross-platform. 1.1. Deci, PHP ruleaza pe majoritatea sistemelor de

operare , inclusiv Windows , Unix ( și multe variantele sale ) , și Macintosh .

1.2. scripturi PHP scrise pe un server funcționează în mod normal pe un alt server modificari minore sau deloc .

PHP poate fi folosit pentru scrierea unor programe stocate pe server ce accesează baze de date.

Definiţie~Istoric~ Caracterisitci PHPDefiniţie~Istoric~ Caracterisitci PHP

Page 63: curs1_2php2013.ppt

- a apărut în 1994 din dorinţă lui Rasmus Lerdorf de a afla câte persoane îi accesează CV-ul on-line. El a numit setul de scripturi create PHP (Personal Home Page).

- succesul lui i se datorează lui Zeev Suraski şi Andi Gutmans care au rescris motorul PHP din cap în coadă, motor ce poartă numele de Zend începând cu versiunea a patra

- un limbaj ideal pentru construirea de pagini Web dinamice. - poate fi rulat pe mai multe platforme;- se poate conecta la mai multe baze de date, în particular baze de date relaţionale

create cu MySQL. - se poate include în cod HTML. - permite crearea de pagini HTML statice şi din loc în loc, acolo unde este nevoie, să

se introducă dinamism cu PHP.- este open-source - are o sintaxă simplă, variabilele nu trebuie declarate, tipul acestora se stabileşte la

iniţializarea lor cu o valoare şi în plus numele de funcţii sunt intuitive.- Rulează pe server

Istoric~ Caracterisitci PHPIstoric~ Caracterisitci PHP

Page 64: curs1_2php2013.ppt

Scripturile PHPSe execută în urma unui eveniment1.Când un utilizator trimite un form2. Când un utilizator accesează un URL

Page 65: curs1_2php2013.ppt

Limbajul PHP oferă următoarele facilităţi:1.manipularea conţinutului paginilor web;2. transmiterea header-elor HTTP pentru

autentificare;3. setarea cookie-urilor;4. redirecţionarea utilizatorilor;5.asigurarea spargerii (paser) fişierelor XML;6.crearea şi manipularea imaginilor, animaţiilor şi a

PDF-urilor;7. conectarea la un server de e-mail.8.execuţia rapidă a scripturilor PHP deoarece

interpretorul este inclus în server-ul WEB;9. timpi buni de răspuns.10.conţine numeroase funcţii utile;

Page 66: curs1_2php2013.ppt

Principiul de funcţionare a limbajului PHPPrincipiul de funcţionare a limbajului PHP

1. browser-ul trimite către server-ul Web o cerere HTTP pentru un fişier PHP.

2. Server-ul recunoaşte că fişierul cerut conţine cod PHP, în consecinţă va lansa parser-ul PHP, care va primi la intrare fişierul respectiv.

3. Parser-ul va identifica secvenţele PHP, care în cadrul codului HTML sunt cuprinse între marcajele „<?” şi „?>” şi le va interpreta.

4. Tot ce nu este cod PHP este trimis spre ieşirea standard fără nici o prelucrare.

5. Codul PHP poate scrie la rândul său în ieşirea standard prin comenzile prestabilite cum ar fi „echo” sau „print”.

6. În final serverul Web intercepteză ieşirea standard a parser-ului şi transferă totul browser-ului care a cerut pagina

Page 67: curs1_2php2013.ppt

Interpretorul PHP -ignora tot ce nu este cuprins intre tagurile php, afisand in browser textul asa cum este el introdus in fisierCaracterul Newline -este in mod normal ignorat in Browser deoarece este un caracter non-semantic. -se foloseste in partea de antet pentru a separa raspunsul serverului HTTP de datele reale. Prin urmare, intoarcerea unui caracter newline înainte de toate anteturile ce se scrisu la ieşire pot provoca neintenţionat consecinţe neplăcute. Pentru a atenua această problemă, primul newline este urmat de un un tag de inchidere (?>)=> acest caracter nu mai este interpretat de parser. Procedând astfel, se rezolvă o problemă introdusă de faptul că un număr de editoare de texte cunoscute adauga automat un newline la sfârşitul fişierului, ceea ce produce probleme cu includere de fişierele care nu ar trebui sa afiseze orice text.(SE REVINE LA FISIERE!!!!!!!!!!!!)Obs: O modalitate simplă de a preveni ieşirile false dintr-un fişier inclus este de a omite tag-ul de inchidere de la final, parser-ul consideră acest lucru perfect legal.

Page 68: curs1_2php2013.ppt

Caracteristici cod PHP -toate instrucţiunile PHP se termină cu punct şi virgulă. -poate fi imbricat cu cod HTML ; - se pot crea pagini HTML fără cod PHP în ele şi să fie salvate cu extensia php - se poate schimba valoarea unei variabile după necesităţi-un fişier ce conţine script-uri PHP se salvează de regulă cu exensia .php, fiind localizat în directorul în care rezidă documentele serverului web;- orice script PHP este cuprins între tag-urile <?php şi ?>;- instrucţiunea PHP care produce output în pagina HTML este echo;-rularea unei pagini care conţine script PHP se va face întotdeauna prin intermediul serverului de web;Obs: în mod implicit (deci fără a modifica setările de instalare) limbajul PHP, nu este case-sensitive (deci nu face diferenţa între literele mari şi cele mici) în ceea ce priveşte cuvintele rezervate ale limbajului(instrucţiunile) respectiv funcţiile (fie că e vorba de cele predefinite ale limbajului, fie că e vorba de cele definite de către utilizator).

Page 69: curs1_2php2013.ppt

Crearea paginilor PHP

Se realizează cu o serie de editoare cum ar fi: Notepad, editoare PHP

O pagină PHP este alcătuită din:•text;•tag-uri HTML sau XML;•comenzi şi instrucţiuni PHP;•comenzi şi instrucţiuni MySQL.

O pagină PHP se salvează cu extensia php în directorul

C:\Program Files\Apache Group\Apache\htdocs\

O pagină PHP se va accesa în browser la adresa http://localhost/numefisier.php.

În cazul în care se doreşte ca paginile unui site Web să se păstreze într-un subdirector creat în rădăcina server-ului Web se va accesa în browser la adresa

http://localhost/numesubdirector/numefisier.php

Page 70: curs1_2php2013.ppt

Codul php se intercaleaza cu codul html prin folosirea delimitatoarelor urmatoare:1. Marcaje standard: <?php ...?>2. Marcaje scurte:<?....?>3. Marcaje de script: <SCRIPT LANGUAGE=”php”>...</SCRIPT>4. ASP tag Ex: <SCRIPT LANGUAGE=”php”> echo “Hello Web! ”;</SCRIPT>In cazul in care marcajele scurte nu sunt recunoscute de php se seteaza in php.ini urmatoarele: short_open_tag=On;Obs: 1.Tagurile standard sunt implicite si reprezinta cea mai buna alegere deoarece sunt compatibile cu versiunile anterioare si sunt garantate sa fie disponibile fara sa necesite o configurare speciala in php.ini. Aceste taguri nu pot fi dezactivate din php.ini(=fisier de configurare PHP).2. Tag-uri scurte - pentru un timp, au fost standardul în lumea PHP. -dezavantaj major este conflictului cu anteturi XML

-avantajul lor este sintaxa scurta de a afisa in browser continutul unei variabile astfel: <? = $ variabila?>secventa <? ii spune procesorului XML sa se astepte sa proceseze o instructiune. Daca se include cod XML si marcajele scurte sunt activate motorul PHP va incerca sa proceseze cod XML. Deci, in cazul in care se foloseste cod XML si PHP se dezactiveaza marcajele scurte.3.Script tags au fost introduse de editoarele HTML care sunt setate sa ignore JavaScript deoarece nu au putu fi setate sa interpreteze tag-urile standard PHP4. Asp tag nu se prea folosesc pt ca trebuie setate explicit. Acesta practica nu este indicata .

Page 71: curs1_2php2013.ppt

Programarea de orice fel are două elemenete de bază şi anume datele şi instrucţiunile.

Pentru a lucra cu datele se impune să se înţeleagă noţiunea de variabilă şi tipurile ei

Pentru a lucra cu instrucţiuni trebuie să se precizeze care sunt structurile de control şi funcţiile unui limbaj de programare.

Accesul la paginile PHP şi afişarea rezultatelor acestora accesul la paginile PHP se face prin tastează unui URL în zona de adresă a navigatorului sau activează o legătură hipertext, moment în care cererea este trimisă către server.

echo, print, print_r, şi printf sunt:comenzile de editare a unei pagini HTML dintr-un script PHP comenzi pentru afişarea rezultatelor unei funcţii, a valorilor unei variabile, a elementelor unui tablou, a mesajelor text, a valorilor introduse de utilizator în câmpurile unui formular HTML, pentru a transmite valorile încadrate între ghilimele la browser, etc.

Page 72: curs1_2php2013.ppt

Exemplu de pagină PHP care foloseşte comenzile print şi echo pentru afişarea în browser a unui pagini web statice ce va conţine două mesaje text.

<html><head><title>Exemplu de afisare</title></head><body><? phpprint "Comanda de afisare a datelor pe ecran";// se afiseaza pe ecran textul scris între

//ghilimele?><br><?phpecho "Limbajul PHP"; // afiseaza pe ecran textul dintre ghilimele?></body> </html>

Page 73: curs1_2php2013.ppt

În exemplul anterior ieşirea PHP care ajunge la browser, poate fi vizualizată cu comanda Source a meniului View, iar rezultatul va fi:

<html><head><title>Exemplu de afisare a valorilor unei variabile</title></head><body>Comanda de afisare a datelor pe ecran<br>Limbajul PHP</body></html>

Page 74: curs1_2php2013.ppt

Generare tag HTML cu PHP<html><head><title>Exemplu de afisare</title></head><body><? php echo “ <h1> Hello world !!!!!!!!!!!!!!!</h1>”; echo “<p/>”; echo “This is <b>bold</b> and <i> italic</i>”;

?></body> </html>

Page 75: curs1_2php2013.ppt

TRANSMITERE DATE SPRE PHP DIN SERVER

<form action=“ADDRESS_SCRIPT.php”> First name: <input type=“text” name=“nume”/> <br/> Last name: <input type=“text” name=“prenume”/> <br/> </p> <input type=“submit” value=“Search”/> </form>

nume=POPprenume=Viorel

POPViorel

NumePrenume

Page 76: curs1_2php2013.ppt

Comentarii

Un comentariu este un text prin care se explică ce face codul . Comentariu poate fi scris de alţi oameni sau de programatorul în sine.OBS:Comentariul nu face nimic!!!!De ce este nevoie de comentarii?!?1)Fac codul mai uşor de citit şi înţeles2)Ajută pe alţii să înşeleagă codul3)Ajută pe programatorul însişi să îşi înteleagă codul pe parcursul timpului...

Page 77: curs1_2php2013.ppt

Comentarii pe o singură linie

Comentarii pe o mai multe linii

<!– Comentariu HTML --><?php $an = 2013 ; // comentariu PHP pe o singură linie echo “An curent: ” ; # o altă linie de comentariu echo $an ; ?> <!– in afara PHP deci se foloseste din nou comenteriu HTML -->

<?php $an = 2013 ; /* comentariu PHP pe o mai mult de o linie */

echo “An curent: ” ; echo $an ; ?> <!– in afara PHP deci se foloseste din nou comenteriu HTML -->

Page 78: curs1_2php2013.ppt

Exemple comentarii<?php /* Acest script va afisa un mesaj de întâmpinare şi timpul curent*/ echo “<h1>Bine aţi sosit</h1>” ; // afişare mesaj întâmpinare $time = date(“h:m”) ; // afişare ‘hours:minutes’ echo “Ora curentă: ” // afişare test echo $time ; // afişare oră curentă ?>

Bine aţi sosit

Ora curentă este: 23:59

Comentariile sunt ignorate când se execută PHP

<?php echo “Bine ati sosit” ; // echo “la” ; echo “PPW”; ?>

Bine aţi sosit PPW

Page 79: curs1_2php2013.ppt

Variabile<?php $an = 2013 ; echo “An curent: ” ; echo $an ; ?>

An curent: 2013

<?php $an = 2013 ;?> An curent: <?php echo $an ; ?>

An curent: 2013

<?php $an = 2013 ;?> An urmator: <?php echo ($an+1) ; ?>

<?php $an = date(“Y”) ;?> An urmator: <?php echo ($an+1) ; ?>

An urmator: 2014

An urmator: 2014

Page 80: curs1_2php2013.ppt

<html><head><title>Exemplu de variabile numerice</title></head><body><? Php//Se seteaza valoare lui a$a=1;$aduna=$a+1;print ”Rezultatul adunarii este: $aduna”;// se afişează pe ecran textul //Rezultatul adunarii este:urmat // de valoare variabilei $aduna adică 2?></body> </html>

Exemplu de utilizare a variabilelor în cadrul unui script PHP:

Page 81: curs1_2php2013.ppt

Exemplu de utilizare a variabilelor în cadrul unui script PHP:

<html><head><title>Exemplu 2 de variabile numerice</title></head><body><? Php//Se setează valoare lui a$a=1;$aduna=$a+1;$a=3;$b=2;$aduna=$a+$b;print ”Rezultatul adunării este: $aduna”;?></body></html>

Page 82: curs1_2php2013.ppt
Page 83: curs1_2php2013.ppt

VariabileO variabila este un container cu un nume care poate stoca o valoare:

$an

2013

NUME

Valoare

Nume: începe cu semnul dolarului ‘$’ urmat de un identificator

$an $an_curent $ancurent

Valoare: poate fi un număr, un şir de caractere, o dată calendaristică

$x $z $y4 3.14 ”Bună ziua!!!”

Page 84: curs1_2php2013.ppt

Exemple de variabile

<?php $an = 2013 ; echo “An curent: ” ; echo $an ; ?>

•Număr întreg

<?php $pi = 3.1415926; echo “<em>Pi</em> (&pi;) este:” ; echo $pi ; ?>

•Număr real

Pi (π) este: 3.1415926

An curent: 2013

•Şir de caractere

<?php $sir = “Buna, eu sunt:”; $x=“Liana Stanca”; echo $sir .” ”.$x ; ?>

Buna, eu sunt: Liana Stanca

Page 85: curs1_2php2013.ppt

Un exemplu mareUtilizare de variabile multiple

<?php $nume = “Unchiul Vanea” ; $nascut = 1961 ; $tara = “Romania” ; echo “Buna ziua, numele meu este: <b>” ; echo $nume ; echo “</b>” ; echo “<p/>” ; echo “Sunt un personaj de roman: <br/>” ; echo “<em>” ; echo $tara ; echo “</em>” ; echo “<p/>” ; echo “Eu am<b>” ; echo (2013 - $born) ; echo “</b> de ani.” ; ?>

Buna ziua, numele meu este Unchiul VaneaSunt un personaj de roman : Romania. Eu am 51 de ani.

Page 86: curs1_2php2013.ppt

Numele de Variabilele sunt ‘case sensitive’<?php $nume = “Aici se memorează un text” ; $Nume = “Aici se memorează un alt text” ; echo $nume ; echo “<p/>” ; echo $Nume ; ?>

Aici se memorează un text

Aici se memorează un alt text

Se folosesc nume de variabiele consistente. De exemplu:

•$nume_prenume•$numePrenume •$NumePrenume

Page 87: curs1_2php2013.ppt

Atribuire valoare variabilei$an= 2013 ;

•Se poate modifica valoarea variabilei in cadrul programului

<?php $an = 2013 ; echo “An curenteste: ” ; echo $an ; ?> echo “<br/>” ; $an = 1066 ; // re-atribuire (valoarea lui $an se schimba) echo “Anul este acum: ” ; echo $an

Anul curent este : 2012

Anul este acum: 1066

•“echo” va afişa valoarea curentă a variabilei

Page 88: curs1_2php2013.ppt

Tipul variabilei

Variabile pot conține diferite tipuri de valori:

1. Integer (numere): …, -3, -2, -1, 0, 1, 2, 3, … 2. Float-Double:  1.5, 2.0, 0.0, 0.41, -123.456,

3.1415926, … 3. String (bucăţi de text): “PPW”, “42”, “buna

ziua!”, “Unchiul Vanea”, “amm!@$!”, … 4. Boolean (valori de adevăr):  true, false

Page 89: curs1_2php2013.ppt

PHP nu este foarte strict cu variabilele1.Variabilelor nu li se declară tipul

• Nu este nevoie să se declare variabile (definire tip)• Nu este nevoie pentru a inițializa variabile (setați

valoarea inițială)2.O variabilă poate avea chiar diferite tipuri (de valori) în timpul execuției:

<?php $x = 12 ; // valoarea lui ‘x’ este un numbar echo $x ; echo “<p/>” ; $x = “Buna yiua!” ; // ...valoarea este acum un string echo $x ; $x = 3.14 ; // ... valoarea este acum un real echo $x ; ?>

42 Buna ziua! 3.14

Page 90: curs1_2php2013.ppt

Şir de caractereUn şir de caractere este o secvenţă de caractere inclusă între ghilimele sau apostroafe.

Între apostroafe‘text’ , ‘text cu spaţiu’, ‘ ’, ’42’,‘de fapt, orice simbol %*!@’, …Obs. Nu se pot introduce variabile înăuntrul lor<?php $an = 2013 ; echo ‘Acest an este: $an’ ; ?>Între ghilimele“text” , “text cu spaţiu”, “”, “42”,”de fapt, orice simbol %*!@”, …Obs. Se pot introduce variabile înăuntrul lor<?php $an = 2013 ; echo “Acest an este: $an” ; ?>

Acest an este $an

Acest an este 2013

Page 91: curs1_2php2013.ppt

Character EscapingCharacter Escaping des utilizate sunt:

1.  \n (newline character) 2.  \t (tabulation character) 3.  \$ (dollar sign character) 4.  \’ (single quote character) 5.  \” (double quote character) 6.  \\ (backslash character)

Exemple:<pre> <?php echo “hello\n world \t!” ; ?> </pre><?php echo “El a spus: \ "Ai nevoie de chestiile astea! \" pentru studenti” ; ?>

El a spus: "Ai nevoie de chestiile astea! " pentru studenti.

Page 92: curs1_2php2013.ppt

Se pot utiliza ghilimele cu apostrofurile imbricat

•Nu este nevoie de \1. Ghilimele în interiorul apostroafelor

<?php echo ‘Ghilimele: “ in interiorul " apostroafelor’ ; ?>

2. Apostroafe în interiorul ghilimelelor<?php echo “Apostroafe: ’ in interiorul ’ ghilimelelor” ; ?>

Gilimele: “in interiorul" apostroafelor.

Apostroafe: ‘in interiorul ‘ ghilimelelor.

1. Ghilimele în interiorul apostroafelor<?php echo ‘Ghilimele: \“ in interiorul \" apostroafelor’ ; ?>

2. Apostroafe în interiorul ghilimelelor<?php echo “Apostroafe: \’ in interiorul \’ ghilimelelor” ; ?>

Gilimele: “in interiorul" apostroafelor.

Apostroafe: ‘in interiorul ’ ghilimelelor.

Page 93: curs1_2php2013.ppt

Concatenare stringuri

Concatenarea şirurilor se face cu operatorul . (punct)

( “sir1” . “sir2” )

Exemple<?php echo ( “liana” . “stanca” ) ; ?><?php $h = “Hello ” ; $w = “world!” ; $x = ( $h . $w ) ; // concatenare şir! echo “<h1>$x</h1>” ; ?>

lianastanca

Page 94: curs1_2php2013.ppt

<html><body> <?php $p = “POP” ; $l = “VIOREL” ; $spatiu = ( $p . “ ” ) ; // concatenare! $nume = ( $spatiu . $l ) ; // concatenatre! echo “<h1>$nume</h1>” ; ?> </body></html>

POP VIOREL

Page 95: curs1_2php2013.ppt

AritmeticA existat exerciţiul

<?php $an = date(“Y”) ;?> An urmator: <?php echo ($an+1) ; ?>

An urmator: 2014

<?php $an = 2013 ; echo “An: <b>$an</b> <br/>” ; $an = ( $an + 1 ) ; echo “An: <b>$an</b>” ;?>

An urmator: 2014An curent: 2013

Un alt exerciţiu

$an=2013 $an = ( $an + 1 )2013$an

2014$an

Page 96: curs1_2php2013.ppt

Exemple Aritmetice<?php /* Conversie EUR la DKK */ $rate = 7.5 ; $euro = 100 ; echo “Pentru <b>$euro</b> EUR, se primeste” ; $moneda = ( $euro * $rate ) ; // înmulţire! echo “<b>$moneda</b> DKK.” ; ?>

<?php /* Conversie DKK la EUR */ $rate = 7.5 ; $moneda = 100 ; echo “Pentru <b>$moneda</b> EUR, se primeste” ; $euro = ( $moneda/$rate ) ; // împărţire! echo “<b>$euro</b> DKK.” ; ?>

Pentru100 EUR, se primeste 750 DKK

Pentru 100 DKK, se primeste 13.333333 EURO

Page 97: curs1_2php2013.ppt

Funcția round()

<?php /* Conversie DKK la EUR */ $rate = 7.5 ; $moneda = 100 ; echo “Pentru <b>$moneda</b> EUR, se primeste” ; $euro = ( $moneda/$rate ) ; // împărţire!$rotunjire=round( $euro ) ; echo “<b>$rotunjire</b> DKK.” ; ?>

Pentru 100 DKK, se primeste 13 EURO

Page 98: curs1_2php2013.ppt

Operatori aritmeticiOperatorii aritmetici sunt:

• + (adunare) ( 1 + 2 ) • - (sucădere) ( 3 - 4 ) • * (înmulțire) ( 5 * 6 ) • / (împărțire) ( 7 / 8 )

<?php $x = 2 ; $y = 5 ; $rezultat = ((1 + (2 - $x)) * ($y / 2)) ; echo “Rezultatul este: <b>$rezultat</b>” ; ?>

Rezultatul este:2.5

Page 99: curs1_2php2013.ppt

Incrementare şi Decrementare

Operatorii de Incrementare şi decrementare sunt: • $x++ ( se incrementează variabila x cu 1) =>

Echivalent cu: “$x = ($x + 1)” •$x-- (se decrementează variabila x cu 1) =>

Echivalent cu: “$x = ($x - 1)”

<?php $x = 7 ; echo “ ‘x’ este: <b>$x</b>” ; echo “<p/>” ; $x++ ; echo “ ‘x’ este: <b>$x</b>” ; ?>

‘X’ este: 7‘X’ este: 8

Page 100: curs1_2php2013.ppt

BOOLEANSUn boolean poate lua doar două valori:

• true • false

Example:if ( true ) { echo “Intotdeauna se va scrie acest mesaj.” ; }

if ( false) { echo “Acest mesaj nu se va scrie niciodată.” ; }

Page 101: curs1_2php2013.ppt

Expresii booleanOperatori relaţionali

•== (este egal cu) ( 1 == 1 ) •!= (este diferit de ) ( 2 != 3 ) • < (este mai mic decât) ( 4 < 5 ) • > (este mai are decât) ( 7 > 6 ) • <= (este mai mic sau egal) ( 8 <= 9 ) • >= (este mai mare sau egal) ( 0 >= 0 )

<?php $x = 1 ; $y = 2 ; $rezultat = ( $x > $y ) ; echo “Rezultatul este: <b>$rezultat</b>” ; ?>

Rezultatul este:false

Page 102: curs1_2php2013.ppt

Prioritatea operatorilor

1. Operatori aritmetici:  +, -, *, /

 2. Operatori de comparaţie:   <, >, <=, >=  3. Operatori de egalitate:

! ==, !=

cel mai puternic

cel mai slab

<?php echo ($a+$b>=$c) ; /* interpretat ca “($a+$b)>=$c” */ ?> <?php echo ($a==$b+$c) ; /* interpretat ca “$a==($b+$c)” */ ?> <?php echo ($a!=$b<$c) ; /* interpretat ca “$a!=($b<$c)” */ ?>

Page 103: curs1_2php2013.ppt

Expresii booleane

Operatori logici: • ! (not) !($x>1) • && (and) ($x>3) && ($x<9) • || (or) ($x<4) || ($x>7)

Page 104: curs1_2php2013.ppt

Variabila variabilelorÎn PHP, este posibil de a crea aşa-numitele variabile a variabilelor. Aceasta este o variabilă al cărui nume este conţinut într-o altă variabilă. De exemplu:

$nume='Ion';$$nume='Maria';echo $Ion ."<br/>";// afiseaza variabila_variabilei_numeecho $nume."<br/>";echo $$nume."<br/>";

Deci, valoare variabile nume devine la randul ei variabila si contine valoarea atribuita cu $$.Deci, daca afisam $Ion valoarea lui este Maria.Acest lucru se mai poate realiza prin definirea numelui intre acolade:

Page 105: curs1_2php2013.ppt

$nume='123';//din nou se atribuie o valoare$$nume='456';//folosind acolade se afiseaza valoare 456echo $nume."<br/>";echo ${'123'}."<br/>";

Obs: Variabile variabilelor sunt un instrument foarte puternic, şi ar trebui să fie utilizate cu grijă extremă, nu numai pentru că aceasta tehnica poate face codul dificil de înţeles şi de documentat, dar, de asemenea, deoarece utilizarea lor necorespunzătoare poate duce la unele probleme de semnificative securitate. O tehnica asemanatoare cu variabila a variabilelor poate fi folosita pentru a stoca numele de funcţii în interiorul unei variabile:

function myFunc () {echo 'myFunc!';}$f = 'myFunc';$f(); // va apela myFunc ();

Page 106: curs1_2php2013.ppt

Determinarea existentei unei valoriUnul dintre dezavantajele modului in care PHP gestionează variabile este faptul că nu există nici o modalitate de a se asigura că acestea exista la un moment dat în executarea unui script.

Acest lucru poate introduce o serie de probleme, de la avertismente de securitate semnificative dacă se incearca afisarea unei valorii a unei variabile care nu a fost initializata pana la probleme de funcţionalitate in momentul in care variabilele nu pot fi disponibile si este nevoie de ele. Pentru a atenua această problemă, se pot utiliza construcţii create cu functia isset() astfel: echo isset ($x);Explicatie:O apelare a lui isset () va returna adevărat dacă o variabilă există şi are o valoare, in caz contrar va afisa NULL.

Page 107: curs1_2php2013.ppt

Exemplu variabileExemplu variabile

<html><head><title>Exemplu de variabile sir de caractere</title></head><body><? // exemplu de string$sir=”exemplu de string”;print ”Sirul este: $sir”;?></body> </html>

Page 108: curs1_2php2013.ppt
Page 109: curs1_2php2013.ppt

<html><head><title> Testarea tipului variabilelor</title></head><body><?php$test; //declarare fara atribuireecho gettype($test);// nullecho "<br>";$test=8; //declarare cu atribuireecho gettype($test);//integerecho "<br>";$test=9.8; //declarare cu atribuireecho gettype($test);//doubleecho "<br>";$test=”curs”; //declarare cu atribuireecho gettype($test);//stringecho "<br>";$test=true; //declarare cu atribuireecho gettype($test);//booleanecho "<br>";?></body></html>

Page 110: curs1_2php2013.ppt

Schimbarea tipului prin folosirea functiei settype():settype(numevariabila,’numetipnou’);

<html><head><title> Schimbarea tipului variabilelor</title></head><body><?php$test=9.8; //declarare cu atribuireecho gettype($test);//doubleecho " ";echo "este $test <br>";//afiseaza:9.8

settype($test,'string');echo gettype($test);//stringecho " ";echo "este $test <br>";//afiseaza:9.8

settype($test,'integer');echo gettype($test);//integerecho " ";echo "este $test <br>";//afiseaza:9

settype($test,'double');echo gettype($test);//doubleecho " ";echo "este $test <br>";//afiseaza:9settype($test,'boolean');echo gettype($test);//booleanecho " “;echo "este $test <br>";//1?></body></html>

Page 111: curs1_2php2013.ppt

Conversia (castingul) valorii unei variabileScriind numele unui tip de date in paranteze inaintea numelui unei variabile se creaza o copie a valorii respectivei variabile convertita in tipul astel specificat.Diferenta intre casting si settype() este data de faptul ca prin casting se obtine o copie a valorii variabilei lasand variabila initiala neschimbata.

<html><head><title> Schimbarea tipului variabilelor prin casting</title></head><body><?php$test=9.8; //declarare cu atribuire$casting=(double) $test;echo gettype($casting);//doubleecho " ";echo "este $casting <br>";//afiseaza:9.8

$casting=(string) $test;echo gettype($casting);//stringecho " ";echo "este $casting <br>";//afiseaza:9.8

$casting=(integer) $test;echo gettype($casting);//integerecho " ";echo "este $casting <br>";//afiseaza:9

Page 112: curs1_2php2013.ppt

$casting=(double) $test;echo gettype($casting);//doubleecho " ";echo "este $casting <br>";//afiseaza:9

$casting=(boolean) $test;echo gettype($casting);//booleanecho " ";echo "este $casting <br>";//1echo "<hr>";echo "Tipul variabilei originale este:";echo gettype($test);//doubleecho " ";echo "Valoarea variabilei initiale este: $test";//neschimbata 9.8

?></body></html>

Tipul de date al variabilei si valoarea $test a ramas neschimbat pe tot parcursul exemplului.

Page 113: curs1_2php2013.ppt

Utilitatea, converiei prin casting sau settype() (in PHP daca aceasta are loc automat ) apare at cand se doreste ca o variabila sa isi pastreze in mod persistent tipul de date initial. Numerele pe care un utilizator le tasteaza intr-un formular HTML vor fi preluate de script sub forma de sir de caractere. Daca se doreste insumarea a doua numere preluate cu un formular HTML, PHP le va transforma in mod automat la intalnirea semnului plus. Ex: “30m”+”40m” rezultatul va fi 70 intreg.PHP cand converteste siruri de caractere ignora caracterele non-numerice. Daca intr-un camp al formularului HTML se introduce o val de genul 30m at, ca sa nu fie probleme de programare, in variabila care preia valoarea se va memora “30m” iar cu casting se va converti la integer.Verificarea tipului de date este util in lucrul cu functiile. Mai exact la transmiterea parametrilor functiilor. O functie care asteapta o valoare de tip intreg nu va opera corespunzator daca ii este trimis un parametru de tip string.

Page 114: curs1_2php2013.ppt

Variabilele prezintă domenii de valabilitatedomenii de valabilitate care respectă următoarele şase reguli: 1. variabilele care sunt vizibile în tot scriptul se numesc

superglobale;2. constantele după declarare sunt vizibile global;3. variabilele globale sunt vizibile în scriptul în care au

fost declarate, dar nu şi în interiorul funcţiilor;4. variabilele utilizate în cadrul funcţiilor, care sunt

declarate ca fiind globale, se referă la variabila globală cu acelaşi nume;

5. variabilele create în interiorul funcţiilor, care sunt declarate ca statice sunt invizibile în exteriorul acesteia, păstrând valoarea de la o execuţie la alta;

6. variabilele create în interiorul funcţiilor sunt valabile doar în interiorul acesteia.

DDomenii de valabilitateomenii de valabilitate a variabilelor a variabilelor

Page 115: curs1_2php2013.ppt

Variabile globale si superglobalePag: A.php$username=“geo”;Pag: B.php$username=“georgeta”;Rezultat : Valoarea variabilei din pagina A.php nu este afectata de valoarea variabilei din pagina B. Deci, valoarea variabilei $username este locala la nivelul fiecarei pagini iar variabilele atribuite sunt independente una de cealalta.

In cazul in care variabila $username este definita global intr-un script sau o functie ea devine vizibila atat in script A.php cat si in script B.php deci va avea aceeasi valoare in ambele.

Obs: Folosirea variabilelor superglobale este indicata deoarece creste securitatea aplicatiilor si reduce riscul injectarii de cod in scripturi.

Variabile predefinite PHP numite superglobale sunt prezente in toate scripturile. Fiecare variabila superglobala sunt vectori care contin alte variabile:

Page 116: curs1_2php2013.ppt

Variabilele superglobale sunt:Variabilele superglobale sunt:

• $_SERVER este un tablou ce conţine variabile de mediu ale serverului;

• $_GET este un tablou ce conţine variabile transferate scriptului prin metoda GET; Variabila $_GET este un tablou de perechi (nume, valoare) trimise de metoda HTTP GET. Informațiile trimise cu GET sunt vizibile în bara de adresă a browser-ului (max. 100 caractere)

Page 117: curs1_2php2013.ppt

formget.php

<form action=“exget.php" method="get">

Nume: <input type="text" name="nume" />

Varsta: <input type="text”name=“varsta"/>

<input type="submit" />

</form>

În bara de adresă: .../exget.php?nume=Anca&varsta=40

exget.php<?php

echo "Bun venit,". $_GET["nume"] ."<br/>"; echo "Varsta dvs,". $_GET["varsta"] ."!";

?>

Page 118: curs1_2php2013.ppt

•Nu se foloseşte când se trimit parole

•Adresa cu valorile câmpurilor poate fi adăugată la Favorites sau Bookmarks

•Nu se foloseşte când se transmit mai mult de 100 de caractere

PHP $_GET

Page 119: curs1_2php2013.ppt

PHP $_REQUEST

$_REQUEST este un tablou ce conţine toate variabilele introduse de utilizator, inclusiv conţinutul intrărilor din $_GET, $_POST şi $_COOKIE;

Poate fi folosită pentru a obține valorile din mai multe formulare (unele folosesc get altele post)

Page 120: curs1_2php2013.ppt

PHP $_POST

Folosită pentru a obține datele din formulare trimise cu metoda post

Este un tablou asociativ ce conţine variabile transferate scriptului prin metoda POST – conține perechi (nume, valoare)

Exemplu:<form action=“expost.php" method="post">

Nume: <input type="text" name="nume" />

Varsta: <input type="text" name=“varsta" />

<input type="submit" />

</form>

Page 121: curs1_2php2013.ppt

PHP $_POST

În bara de adresă .../expost.php În expost.php

<?php

echo "Bun venit,". $_POST["nume"] ."<br/>";

echo "Varsta dvs,". $_POST["varsta"] ."!";

?>

Page 122: curs1_2php2013.ppt

• $_COOKIE este un tablou ce conţine blocuri cookie(mai exact, contine variabile care ii sunt transmise scriptului prin intermediul cookie-urilor)

• $_FILES este un tablou ce conţine variabile legate de încărcarea fişierelor;

• $_SESSION este un tablou ce conţine variabile de sesiune.OBS: In versiunile mai vechi de 4.1.x (nu se permite actualizarea

pachetul la o versiune mai noua) variabilele superglobale se scriau astfel:

HTTP_GET_VARS pentru $_GET, HTTP_POST_VARS pentru $_POST, HTTP_COOKIE_VARS pentru $_COOKIE, HTTP_POST_FILES pentru $_FILES, HTTP_ENV_VARS pentru $_ENV, HTTP_SESSION_VARS pentru $_SESSION si sunt vectori simpli nu superglobali si trebuie definiti ca atare.

Page 123: curs1_2php2013.ppt

Variabilele globale cele mai folosite sunt:Variabilele globale cele mai folosite sunt:

1. $_SERVER['REMOTE_ADDR'] are misiunea de a returna adresa IP a vizitatorului;

2. $_SERVER['HTTP_USER_AGENT'] are misiunea de a returna informaţii despre browser-ul folosit;

3. $_SERVER['HTTP_REFERER'] are misiunea de a returna adresa paginii vizitată anterior;

4. $_SERVER['SERVER_NAME'] are misiunea de a returna numele serverului;

5. $_SERVER['SCRIPT_NAME'] are rolul de a returna numele fişierului php accesat.

Page 124: curs1_2php2013.ppt

O constantă are un tip şi o valoare. Atât tipul, cât şi valoare, sunt determinate de caracterele care intră în componenţa constantei. Valoare unei constante nu poate fi schimbată în timpul execuţiei programului în care a fost utilizată.

Constante PHPConstante PHP

Constantele se caracterizează prin:1. li se atribuie o valoare care nu poate fi modificată sau ştersă de-a lungul

execuţiei programului;2. constantele nu prezintă în sintaxa lor simbolul $ ;3. numele unei constante este o succesiune de litere şi eventual cifre, primul

caracter este în mod obligatoriu literă. Aceasta este case sensitiv. 4. constantele au un caracter global. 5. definirea constantei se realizează cu funcţia define().6. valoarea atribuita unei constante cu define poate fi numar sau sir de

caractere sau o valoare de tip Boolean.7. pot fi folosite oriunde in scripturi, inclusive in functiile externe care sunt

incluse.

Page 125: curs1_2php2013.ppt

define(”nume constanta”, valoare);

Functia define() are un al treilea argument care daca se seteaza la true at nu conteaza cum este scrisa constanta cu liere mari sau mici; daca se seteaza la false at este obligatoriu sa se scrie constanta cu litere mari.

define(“NUME”,”Viorel”,true);echo NUME;echo nUme;echo NuMe;toate aceste sunt corecte si afiseaza Viorel;

Obs: Este bine sa nu se seteze scrierea cu litere mici a constantei pt a putea sa se faca diferentierea clara intre constante si variabile

Page 126: curs1_2php2013.ppt

<?phpecho "Setare la TRUE a lui define-> nu conteaza daca numele constantei este scris cu litere mici sau mari <br>";

define("NUME","Viorel",true);echo NUME ."<br>";echo nUme ."<br>";echo NuMe ."<br>";echo "Setare la FALSE a lui define-> conteaza daca numele constantei este scris cu litere mici sau mari <br>";echo "Numele constantei scris cu litere mari <br>";define("NUME1","Viorel",false);echo NUME1 ."<br>";echo nUme1 ."<br>";echo NuMe1 ."<br>";

echo "Setare la FALSE a lui define-> conteaza daca numele constantei este scris cu litere mici sau mari <br>";echo "Numele constantei scris cu litere mici <br>";define("nume2","Viorel",false);echo NUME2 ."<br>";echo nUme2 ."<br>";echo NuMe2 ."<br>“;?>

Page 127: curs1_2php2013.ppt
Page 128: curs1_2php2013.ppt

Exemplul 1

<?phpdefine('marca','pepsi'); echo “marca”;?>

Exemplul 2

<?phpdefine('marca','pepsi'); define('tip','racoritoare'); echo "Majoritatea ardelenilor prefera marca ".marca. " din grupa ".tip."";?>

Page 129: curs1_2php2013.ppt

<?phpdefine("pi",314e-2);//s-adefinit o constanta numerica realadefine(“sir",“Sir de caratere");// constanta de tip sir de caractereecho sir,"<br>";// se afiseaza constanta sir de caractereecho "Constanta pi, aproximata cu 2 zecimale este ",pi;//se afiseaza constanta numerica?>

Page 130: curs1_2php2013.ppt

Constante Predefinite

<?phpecho "<br>";function exemplu_functie_cosntante(){

echo __LINE__."<BR/>";

echo __FILE__."<BR/>";

ECHO __FUNCTION__."<BR/>";

ECHO __METHOD__."<BR/>";

ECHO PHP_VERSION .”<BR/>”;

}

exemplu_functie_cosntante();

?>

Page 131: curs1_2php2013.ppt

Operatorii sunt simboluri care permit folosirea uneia sau mai multor valori pt producerea unei noi valori.

Un operator este un simbol sau o serie de simboluri care, at cand sunt folosite in conjunctie cu valori, efectueaza o actiune, si in general produce o valoare noua.

Valoarea cu care opereaza un operator se numeste operand.Un operand este o valoare folosita in conjunctie cu un operator.

Expresia este o combinatie de operanzi si operatori. In PHP expresia se defineste ca fiind orice poate fi folosit pe post de valoare. Deci, expresia poate include constante intregi cum ar fi 6; variabile $nume, apeluri de functii.

Operatori si operanzi PHPOperatori si operanzi PHP