Sunteți pe pagina 1din 131

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 informaiilor PHPHypertext Preprocessor MySQLMy Structures Query Language Premise: CSSCascading Style Sheets HTMLHyperText Markup Language

Stuctura curs
Cursuri de prezentare a PHP Cursuri de prezentare a MySql Cursuri de prezentare FrameworkZend Teorie I Practic

Materiale de baz a cursurilor


Cri
Larry Ullman ,PHP6 and MySQL 5 for Dynamic Web Sites 2.Luke Welling, Laura Thomson,Dezvoltarea aplicatiilor Web cu PHP si MySQL,Teora,2005 3.Julie C Meloni,Invata singur PHP,MySQL si Apache editura Corint,2004 4.Jay GreenSpan, Brad Bulger,MySql,PHP Database Aplications,M&T Books,2001 5. Stanca Liana, Suportul tehnologic al afacerilor electronice,Presa Universitara Clujeana,2007
1.

Materiale web
HTTP Made Really Easy - http://www.jmarshall.com/easy/http/ HTML:http://www.w3schools.com/html PHP:http://www.w3schools.com/php PhpWebSite 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

Cerine examen
1.Implementare Librrie =>revist Chip 20% minim nota 5 2.examen practic PHP-MySQL(spt.14)-40% minim nota 5 3.examen scris sesiune-35% minim nota 5 4.efectuarea temelor de laborator se verific i conteaz la examen neefectuare temelor i neprezentarea la timp conduce la scderea a 2 puncte din nota final=> SE PREZINT FR NTRZIERE (5%)- minim nota 5

La ce ajut cursul
Curs de iniiere n programare web i de nelegere a conceptelor de baz din programarea web 1. (X)HTML pot fi utilizate numai pentru pagini web statice (fr interactivitate cu utilizatori) 2. PHP poate procesa inputurile oferite de utilizatori i genereaz dinamic ca rezultat al prelucrrilor un cod HTML pe baza informaiilor stocate n baza de date. 3. MySql- ofer toate instrumentele necesare pentru munca cu o baza de date 4. 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

Ce v ofer cursul
1. O nelegere a conceptelor de baz a diferitelor aspecte i tehnologii legate de dezvoltarea web 2. Experien n dezvoltarea paginilor web interactive 3. Cunoaterea limitelor acestui domeniu (posibiliti i limitri ale site-uri web dinamice)

Introducere
Bill Gates, la sfritul anului 1999, afirma c: Dac anii '80 au fost caracterizai de implementarea calitii, 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 informaie va altera stilul de via al consumatorilor. Creterea calitii i transformarea proceselor economice se vor derula cu o viteza mult sporit, astfel nct n momentul n care viteza depete o anumit limit, nsi natura afacerii se modific. Gates1999.

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

comunicaii atot-cuprinztoare, reele de comunicaii la preuri sczute, care folosesc tehnologiile i standardele Internet; aplicaii i capital uman care permit conducerea afacerilor prin aceast infrastructur de reele; piee electronice interconectate care opereaz folosind infrastuctura de reele i aplicaii existente la ora actual n lume; productori i intermediari care furnizeaz o mare varietate de produse i servicii pentru a facilita eficiena i lichiditatea; un cadru legal, nc n formare, pentru conducerea afacerilor electronice.

Reeaua Internet - concept i evoluie


Internet-ul este definit ca o colecie larg de reele sau ca o reea de reele

n concepia economitilor [Godeluck2002] apariia Internet-ului a schimbat radical natura creterii economice ducnd la apariia unei noi economii bazate pe caliti intrinseci ale reelei i concentrate asupra unui nou gen de ntreprinderi. Bill Cates afirma n anii 90: Internet-ul este un val de flux. El va mtura aproape toate sectoarele industriale, nnecndu-i pe cei ce nu vor nva s noate n valurile sale. Internetul va impune o nou ordine industrial: orientarea spre puterea de consum, consumatorii nu productorii devin inta organizaiilor.

Istoric Internet
John Heilemann The true story of the internet browser wars http://www.youtube.com/watch?v=W_Gi-wYpEMM ->La baza Internetului se afl cercetrile demarate de ARPA n domeniul tehnologiilor de reea i telecomunicaiilor n 1958 ->n anul 1990 se inaugureaz WWW de ctre Tim Benners Lee impreun cu CERN Ca 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 computere Web 1.0- era read-only Web 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 existnd si posibilitatea gazduirii gratuite. ->2004 Tim O'Reilly, care a inventat expresia "Web 2.0, a descris-o ca valorificarea/exploatarea inteligenei colective

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 combinaie de tehnici care dateaz nc de la sfritul anilor 1990, dar care abia n zilele noastre (2007) cunosc o rspndire deosebit de mare: 1.Application Program Interfaces (APIs) pentru servicii web 2.Asynchronous Javascript and XML (Ajax), ca urma al tehnicilor de gen XmlHttpRequest 3. Content syndication - servicii de abonamente, de exemplu RSS - abonamente la "Ultimele nouti" 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 prezentarilor Deci, Web 2.0 se concentreaz pe mai multe teme majore, inclusiv AJAX, reele sociale, folksonomies, colaborare uor, social bookmarking, i de partajare media Deci, web 2.0 este o schimbare fundamental att n modul n care sunt create site-uri web si, mai important, modul n care oamenii interacioneaz ntre ei.

"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 generaie de servicii bazate pe internet, care mpreun alctuiesc ceea ce ar putea fi numit" web inteligente "- cum ar fi cele care folosesc web-ul semantic, microformate , cutare limbaj natural, extragerea datelor, masina de nvare, ageni de recomandare, i tehnologii de inteligenta artificiala -. care pun accentul pe nelegerea main-facilitat de informaii, n scopul de a oferi o experien de utilizare mai productiv i mai intuitiva -poate fi definit ca o a treia generaie de web a permis convergen a mai multor tendine-cheie de tehnologie n curs de dezvoltare: Ubiquitous Connectivity Broadband adoption Mobile Internet access Mobile devices Network Computing Software-as-a-service business models Web services interoperability Distributed computing (P2P, grid computing, hosted cloud computing server farms such as Amazon S3) Open Technologies Open APIs and protocols Open data formats Open-source software platforms Open data (Creative Commons, Open Data License, etc.)

Open Identity

Open identity (OpenID) Open reputation Portable identity and personal data (for example, the ability to port your user account and search history from one service to another)
Web-ul inteligent 1.Tehnologiile Semantic Web (RDF, OWL, SWRL, SPARQL, platforme de aplicatii semantice, i datastores Protecia 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.Aplicaii inteligente (procesarea limbajului natural, masina de nvare, raionament main, agenii 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.

3 Prezentarea tehnologiei pentru dezvoltarea pe server


Tehnologiile disponibile pentru dezvoltarea pe server sunt variate. Toate au ns aceleai scopuri, i anume, s transfere aciunile de prelucrare a informaiilor pe un calculator mai perfomant cu o putere de memorare i de prelucarea a datelor mult mai mare dect a altor calculatoare din reea, care s prezinte un nivel de securitate mai ridicat i s centralizeze operaiile de ntreinere. 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 crerii unei aplicaii electronice reuite.
Aspecte importante legate de realizarea conexiunilor la server sunt: Viteza ntrzierea cu care serverul rspunde la o cerere fcut de un browser Web.

Securitatea poate fi abordat din dou puncte de vedere, i anume, securitatea site-ului i securitatea coninutului acestuia.
Scalabilitatea se refer la capacitatea unui site Web de a accepta un numr diferit de utilizatori, cu timpi de rspuns i performane similare.

Serverul web are rolul de a servi fiiere stocate n rdcina lui (de exemplu pentru web server-ul Apache strucutr de directoare este: /var/www/html/) Servirea unui fiier se efectueaz dac fiierul specificat ndeplinete urmtoarele condiii : 1.exist, 2.este accesibil de ctre serverul web 3.drepturile de acces nu interzic acest lucru. n cazul nendeplinirii uneia dintre aceste condiii, serverul va trimite un cod de eroare sau o pagin predefinit care s informeze despre eroarea aprut.

Limbajul de marcare prin hipertext (HTML) a fost acceptat pe scar larg i a fost adoptat ca mecanism pentru diseminarea informaiei n World Wide Web. Principiul de funcionarea a site-urilor dinamice : fiierele pe care serverul web le servete n general, depind de alte programe externe de generare de cod (CGI, ASP, JSP, PHP). Fiierele care necesit astfel de prelucrri vor fi generate de programul extern, a crui rezultat va fi un fiier HTML nou creat. Acest fiier va fi transferat serverului web, pe care acesta poate s-l serveasc ca pe orice alt fiier. Protocolul HTTP definete 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 aciunea pe care vrea s o ntreprind.

O sesiune de transfer a datelor cu ajutorul protocolului HTTP, se desfoar astfel: 1.se realizeaz o conexiune client-server; 2.clientul, adic browser-ul, lanseaz o cerere; 3.serverul furnizeaz clientului rspunsul la cererea formulat; 4.serverul ncheie conexiunea. TCP (Transmission Control Protocol) are ca funcie primar schimbul corect de pachete de date ntre nodurile unei reele, adic corectarea erorilor i secvenierea transportului.

IP (Internet Protocol) asigur transmiterea de pachete de la surs la destinaie; sursa i destinaia fiind calculatoare gazd (host computer) identificate prin adrese de lungime fix. Sursa i destinaia se pot gsi n reele diferite astfel un pachet poate strbate cteva reele pn la destinaie.
Protocolul TCP/IP a aprut ca urmare a dorinei de a interconecta fr probleme mai multe tipuri de reele, iar activitatea de transmisie a datelor s nu fie afectat de distrugerea sau defectarea unei pri a reelei. Acesta are funcia primar de dirijare a pachetelor de date de la surs la destinaie devenind astfel un standard pentru reelele 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 comunicaiile globale prin pota electronic.

Serviciul WWW modalitate de funcionare

Site -un ansamblu de pagini Web, ntre care exist create legturi, astfel nct, pornind d la o prim pagin a crei adres reprezint adresa site-ului, este posibil navigarea pri toate paginile acestuia. Conectarea la un site Web determin operatii: 1browser-ul stabileste o conexiune TCP/IP ctre server. Protocolul la nivel de aplicatie utilizat este

specificat numr de port. De exemplu, protocolul HTTP are asociat portul 80; 2.browser-ul emite o cerere HTTP ctre server, cerere care este constituit din: o 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 rspuns ctre browser. Rspunsul 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 urmtoarele semnificatii: - coduri 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 d eroare client, iar codurile care ncep cu 5 sunt coduri de eroare server, un antet (response-header) ce contine informatii despre resursa solicitat, eventual alt declaratii necesare pentru livrarea rspunsului; un corp, format din datele transferate.

Aceast succesiune de operatii poart numele de tranzactie.

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


pe dou niveluri- Clientul este responsabil n primul rnd cu prezentarea datelor ctre client, iar serverul este responsabil n primul rnd de furnizarea serviciilor de date ctre client.

pe trei niveluri: a aprut datorit complexittii aplicatiilor care puteau fi desfsurate pentru terti sau mii de utilizatori.

Tipuri de site-uri
Site-uri Web statice 1. Un client (browser) cere un document HTML 2. Serverul trimite clientului documentul HTML cu toate fiierele necesare lui 3. Clientul afieaz documentul HTML formatat n concordan cu CSS

Site-uri Web dinamice sunt creaturi flexibile i puternice, descrise mai exact ca aplicaii dect 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 similare 2. au aproape ntotdeauna formulare HTML, astfel nct oamenii pot efectua cutri, ofer feedback-ul, etc. 3. au interfee n care administratorii pot gestiona coninutul site-ului 4. Sunt mai uor de creat, modificat i meninut n timp dect 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 ataat. Aceasta de cele multe ori este dezvoltat de MySQL .

Site-uri web dinamice 1.Un client cere un document HTML ce include un formular 2.Utilizatorul completeaz formularul i click pe submit aciune ce trimite datele napoi la server 3. 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 afieaz utilizatorului.

Browser-ul ntotdeauna primete text nu cod executabil 1. HTML este text 2. CSS este text 3. Rezultatul unui script PHP este text( Browser-ul nu vede niciodata codul PHP)

Reguli generale n dezvoltarea web


1. Utilizarea standardelor pentru a scrie un text valid CSS i (X)HTML. Etc. 2. Separarea coninutului de formatare i de funcionaliti Coninut: XHTML Formatare: CSS Funcionaliti: PHP
Proiectare pe hrtie a applicaiei i apoi implementarea codului surs (acest regul este general valabil n dezvoltarea de produse program)

HTML recapitulare
-Limbaj HyperTextMarkup text simplu; -folosit pt crearea paginilor web -definete structura documentului - fiiere CSS

HTML element Un 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>

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 compatibilitii cu diferite browsere -Adaptarea uoar a modului de afiare a coninutului n forma tipic dispozitivului folosit (desktop, mobile, etc) - mentenan uoar a site-urilor - faciliteaz dezvoltarea codului de ctre echipe de programatori - faciliteaz nelegerea codului de ctre diverse persoane n timp Validarea codului HTML se face cu: 1. http://validator.w3.org 2. HTML validator de la Firefox

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> Legturi: <a href=http://link.com>text</a> Legatura mailto:<a href=mailto:me@itu.dk> me@itu.dk </a> Imagini:<img src=images/pic.jpg alt=pic /> Tabele: <table> </table>, <tr> </tr>, <th> </th>, <td> </td>

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>

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 coninutul (HTML) de formatare (CSS) pt c CSS ofer mai multe posibiliti -se permite schimbarea interfeei site-ului schimbnd un singur fiier -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 puin 2 browsere (de ex. Firefox i Mozila, etc.) - se ncearc s se verifice aspectul site-ului pe un dispozitiv mobil(iPhone, Android)

Straturi i tehnologii comune n documentele web

Formulare HTML
-permit utilizatorului s trimit date spre server. -Exemple: login; cutri; e-mail; chestionare

-informaiile de pe formular se vor procesa pe server de ctre un program(de ex. PHP script)

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

Cum funcioneaz.....
1. Se deschide motorul de cutare preferat 2. Se scrie cuvntul cutat 3. La o aciune de genul click pe buton sau Enter se trimite cuvntul 4. Serverul web proceseaz cererea i ntoarce rezultatul

Reguli de creare a formularelor


1.Identificarea informatiilor care se vor prelua cu ajutorul formularului si stabilirea formei de prezentare a acestora 2. Structurarea informaiilor n mai multe ntrebri elementare 3. Obiectivele care stau la baza crearii unui formular trebuie sa furnizeze raspunsuri la intrebarile: ce informaii se doresc s se obina de la utilizator? Ct 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 formular 9. Folosirea sgeilor pentru a ajuta utilizatorii s navigheze n pagin, ntr-o anumit ordine 10. 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=succesvalue=http://www.... />.

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.) Un SCRIPT care s proceseze datele -PHP,ASP,PERL - va citi datele i le va procesa pe server - fiierul HTML rezultat este transmis clientului napoi

II.

Elementele Formularului
<form action=link> </form> Grupuri de elemente ce pot aprea pe un formular sunt: 1. controale 2. orice imagine sau text 3. nu poate conine un alt formular. Elementele de pre un formular au diferite atribute parameter=value parameter=value

Formularul

Formular

Definire variabil

1. 2. 3. 4.

Atributul name: se definete numele variabilei; Atributul id: la fel ca atributul name Ce fel de tipuri de date conine variabila Serverul vede: firstname=Viorel

Variabile
1.Numele variabilelor sunt folosite de scripturile PHP pentru a avea acces la coninutul acestora 2. Numele variabilelor trebuie s fie unic 3. Se acord nume sugestive variabilelor De 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 oricte litere, cifr din intervalul ([0-9]) sau liniu de subliniere (_)

Input types

Atribut formular=>action
action=target 1.Este obligatoriu 2.Definete cum se vor prelucra datele 3. Aciunea poate: - s fie un script: de exemplu: action=doSomething.php -s fie un link mailto: de exemplu: action=mailto:email@yahoo.com -s se apeleze pe el nsui: de exemplu: action=#

Atribut formular=>method
Se stabilete cum se va trimite informaia POST sau GET
POST

1.numai serverul vede informaia 2.mai securizat


GET 1. datele se ntorc n URL 2. util pentru formulare de cutare

Atribut formular=>enctype
Se definete cun se codeaz(encoded) informaia
datele se codeaz implicit astfel: 1. spaiile se transform cu + 2. caractere speciale se transform la ASCII value= application/x-www-form-urlencoded: implicit text/plain: transform spaiile n +, dar nu i caracterele speciale multipart/form-data: necesare la ncrcarea fiierelor

Elementul <input />

Exist mai multe astfel de obiecte dar le studiem pe acestea

<input type=text/>
Un singur cuvnt sau o linie de text Atribute: type=text name=variableName (obligatoriu) id=variableName (avansat.Face posibil legarea acestui element de un script) value: definirea valorilor implicite size: mrimea textbox-ului maxlength: lungimea maxin admis
<form action=search.php method=post> <input type=text name=search value=Scrie text de cutare /> <input type=submit value=Search /> </form>

<input type=submit/>
1. 2. 3. 4. Afieaz n browser un buton Transmite datele de pe form la server Nu are atribute obligatorii value= afieaz text pe buton

<input type=submit value=Search />

<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 />

<input type=hidden/>
Elemente ascunse nu sunt vizibile pe formular Se folosete pentru: 1. la setarea unei variabile implicite 2. se stabilete dac un produs este la ofert

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

<input/>attributes

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

<form > <select name=Universiti> <option value=UBB>Universitate Babe-Boloyai</option> <option value=UTCN> Universitatea Tehnic</option> <option value=UMV> Universitate de Medicin Veterinar</option> </select> </form>

<select>attributes
name= nu este obligatorie, dar recomandata multiple=multiple permite s selectai mai mult de un element size= numrul definete cte elemente sunt afiate

<option>attributes
value= nu este obligatoriu selected=selected inidic ce element este selectat implicit

Emails received from a form


<form action=mailto:liana@email.ro 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>

HTML5
Noi 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.

<Input/>-atributul autocomplete
Permite realizarea unei completri automate functioneaza cu <form> si urmatoarele tipuri de <input>: text, search, url, telephone, email, password, datepickers, range, and color. Principiul de funcionare: =>utilizatorul ncepe s tasteze ntr-un cmp ce prezinta atributul autocomplet, browser-ul trebuie s afieze opiuni 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" />

<Input/>-atributul autofocus
un cmp ar trebui s primeasca focusul n mod automat in momentul in care o pagin este ncrcat. Obs: Atributul autofocus funcioneaz 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>

Instalare XAMPP
Pachetul XAMPP conine: Apache + PHP + MySQL + phpMyAdmin Acest pachet nu necesit dect o instalare simpl (ca a oricrui program) i se poate descrca de la adresa: http://www.apachefriends.org/en/xampp.html dup descrcare executai-l pentru a porni instalarea. Se alege limba English apoi apsai pe butonul OK!

Dup aceea se apas pe butoanele: Next >, Next > iar apoi se aleg opiunile Install Apache as service i Install MySQL as service pentru ca att serverul Apache ct i cel de MySQL s porneasca odat cu Windows-ul (adic atunci cnd se deschide calculatorul).

Apoi, apsai pe butonul Install i ateptai s se instaleze.

Dup aceea apare pe ecran un mesaj prin care cel care instaleaz este intrebat dac dorete s lanseze panoul de control; se apas butonul Yes.

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 folosete 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 opiunea 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 totui se ntmpl ca unul din servere s se manifeste aa, se activeaz butonul Start din dreptul fiecruia. http://www.apachefriends.org/en/xampp-windows.html#1167

Definiie~Istoric~ Caracterisitci PHP 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 informaii ) =>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 funcioneaz 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.

Istoric~ Caracterisitci PHP


a aprut n 1994 din dorin lui Rasmus Lerdorf de a afla cte 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 ncepnd 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 relaionale 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 stabilete la iniializarea lor cu o valoare i n plus numele de funcii sunt intuitive. Ruleaz pe server

Scripturile PHP
Se execut n urma unui eveniment 1.Cnd un utilizator trimite un form 2. Cnd un utilizator acceseaz un URL

Limbajul PHP ofer urmtoarele faciliti: 1. manipularea coninutului paginilor web; 2. transmiterea header-elor HTTP pentru autentificare; 3. setarea cookie-urilor; 4. redirecionarea utilizatorilor; 5. asigurarea spargerii (paser) fiierelor XML; 6. crearea i manipularea imaginilor, animaiilor i a PDF-urilor; 7. conectarea la un server de e-mail. 8. execuia rapid a scripturilor PHP deoarece interpretorul este inclus n server-ul WEB; 9. timpi buni de rspuns. 10.conine numeroase funcii utile;

Principiul de funcionare a limbajului PHP


1. browser-ul trimite ctre server-ul Web o cerere HTTP pentru un fiier PHP. 2. Server-ul recunoate c fiierul cerut conine cod PHP, n consecin va lansa parser-ul PHP, care va primi la intrare fiierul respectiv. 3. Parser-ul va identifica secvenele 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 ieirea standard fr nici o prelucrare. 5. Codul PHP poate scrie la rndul su n ieirea standard prin comenzile prestabilite cum ar fi echo sau print. 6. n final serverul Web interceptez ieirea standard a parserului i transfer totul browser-ului care a cerut pagina

Interpretorul PHP -ignora tot ce nu este cuprins intre tagurile php, afisand in browser textul asa cum este el introdus in fisier Caracterul Newline -este in mod normal ignorat in Browser deoarece este un caracter nonsemantic. -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 ieire pot provoca neintenionat consecine neplcute. Pentru a atenua aceast problem, primul newline este urmat de un un tag de inchidere (?>)=> acest caracter nu mai este interpretat de parser. Procednd astfel, se rezolv o problem introdus de faptul c un numr de editoare de texte cunoscute adauga automat un newline la sfritul fiierului, ceea ce produce probleme cu includere de fiierele care nu ar trebui sa afiseze orice text.(SE REVINE LA FISIERE!!!!!!!!!!!!) Obs: O modalitate simpl de a preveni ieirile false dintr-un fiier inclus este de a
omite tag-ul de inchidere de la final, parser-ul consider acest lucru perfect legal.

Caracteristici cod PHP -toate instruciunile PHP se termin cu punct i virgul. -poate fi imbricat cu cod HTML ; - se pot crea pagini HTML fr cod PHP n ele i s fie salvate cu extensia php - se poate schimba valoarea unei variabile dup necesiti -un fiier ce conine 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 ?>; - instruciunea PHP care produce output n pagina HTML este echo; -rularea unei pagini care conine script PHP se va face ntotdeauna prin intermediul serverului de web; Obs: n mod implicit (deci fr a modifica setrile de instalare) limbajul PHP, nu este case-sensitive (deci nu face diferena ntre literele mari i cele mici) n ceea ce privete cuvintele rezervate ale limbajului(instruciunile) respectiv funciile (fie c e vorba de cele predefinite ale limbajului, fie c e vorba de cele definite de ctre utilizator).

Crearea paginilor PHP


Se realizeaz cu o serie de editoare cum ar fi: Notepad, editoare PHP
O pagin PHP este alctuit din: text; tag-uri HTML sau XML; comenzi i instruciuni PHP; comenzi i instruciuni 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 dorete ca paginile unui site Web s se pstreze ntr-un subdirector creat n rdcina server-ului Web se va accesa n browser la adresa http://localhost/numesubdirector/numefisier.php

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 PHP 4. Asp tag nu se prea folosesc pt ca trebuie setate explicit. Acesta practica nu este indicata .

Programarea de orice fel are dou elemenete de baz i anume datele i instruciunile. Pentru a lucra cu datele se impune s se neleag noiunea de variabil i tipurile ei Pentru a lucra cu instruciuni trebuie s se precizeze care sunt structurile de control i funciile unui limbaj de programare.

Accesul la paginile PHP i afiarea rezultatelor acestora


accesul la paginile PHP se face prin tasteaz unui URL n zona de adres a navigatorului sau activeaz o legtur hipertext, moment n care cererea este trimis ctre server.

echo, print, print_r, i printf sunt:


comenzile de editare a unei pagini HTML dintr-un script PHP comenzi pentru afiarea rezultatelor unei funcii, a valorilor unei variabile, a elementelor unui tablou, a mesajelor text, a valorilor introduse de utilizator n cmpurile unui formular HTML, pentru a transmite valorile ncadrate ntre ghilimele la browser, etc.

Exemplu de pagin PHP care folosete comenzile print i echo pentru afiarea n browser a unui pagini web statice ce va conine dou mesaje text.
<html> <head> <title>Exemplu de afisare</title> </head> <body> <? php print "Comanda de afisare a datelor pe ecran";// se afiseaza pe ecran textul scris ntre //ghilimele ?> <br> <?php echo "Limbajul PHP"; // afiseaza pe ecran textul dintre ghilimele ?> </body> </html>

n exemplul anterior ieirea 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>

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>

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 Prenume

nume=POP prenume=Viorel
POP Viorel

Comentarii
Un comentariu este un text prin care se explic ce face codul . Comentariu poate fi scris de ali oameni sau de programatorul n sine. OBS:Comentariul nu face nimic!!!! De ce este nevoie de comentarii?!? 1) Fac codul mai uor de citit i neles 2) Ajut pe alii s neleag codul 3) Ajut pe programatorul nsii s i nteleag codul pe parcursul timpului...

Comentarii pe o singur linie


<! 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 ->

Comentarii pe o mai multe linii


<?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 -->

Exemple comentarii
<?php Bine ai sosit /* Acest script va afisa un mesaj de ntmpinare i timpul curent*/ Ora curent este: 23:59 echo <h1>Bine ai sosit</h1> ; // afiare mesaj ntmpinare $time = date(h:m) ; // afiare hours:minutes echo Ora curent: // afiare test echo $time ; // afiare or curent ?>

Comentariile sunt ignorate cnd se execut PHP

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

Bine ai sosit PPW

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

An curent: 2013

An urmator: 2014

An urmator: 2014

Exemplu de utilizare a variabilelor n cadrul unui script PHP:


<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 afieaz 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:


<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 adunrii este: $aduna; ?> </body> </html>

Variabile
O variabila este un container cu un nume care poate stoca o valoare: Valoare
2013 $an NUME

Nume: ncepe cu semnul dolarului $ urmat de un identificator Valoare: poate fi un numr, un ir de caractere, o dat calendaristic

$an

$an_curent

$ancurent

4 $x

3.14 $z

Bun ziua!!! $y

Exemple de variabile
Numr ntreg
<?php $an = 2013 ; echo An curent: ; echo $an ; ?>
An curent: 2013

Numr real

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

Pi () este: 3.1415926

ir de caractere
<?php $sir = Buna, eu sunt:; $x=Liana Stanca; echo $sir . .$x ; ?>
Buna, eu sunt: Liana Stanca

Un exemplu mare
Utilizare de variabile multiple
<?php $nume = Unchiul Vanea ; $nascut = 1961 ; $tara = Romania ; echo Buna ziua, numele meu este: <b> ; Buna ziua, numele meu este Unchiul Vanea echo $nume ; Sunt un personaj de roman : echo </b> ; Romania. echo <p/> ; Eu am 51 de ani. 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. ; ?>

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

Atribuire valoare variabilei


$an= 2013 ;

Se poate modifica valoarea variabilei in cadrul programului


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

echo va afia valoarea curent a variabilei

Tipul variabilei
Variabile pot conine 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 (buci de text): PPW, 42, buna ziua!, Unchiul Vanea, amm!@$!, 4. Boolean (valori de adevr): true, false

PHP nu este foarte strict cu variabilele


1. Variabilelor nu li se declar tipul Nu este nevoie s se declare variabile (definire tip) Nu este nevoie pentru a iniializa variabile (setai valoarea iniial) 2. O variabil poate avea chiar diferite tipuri (de valori) n timpul execuiei:
<?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

ir de caractere
Un ir de caractere este o secven de caractere inclus ntre ghilimele sau apostroafe. ntre apostroafe text , text cu spaiu, , 42,de fapt, orice simbol %*!@, Obs. Nu se pot introduce variabile nuntrul lor <?php $an = 2013 ; Acest an este $an echo Acest an este: $an ; ?> ntre ghilimele text , text cu spaiu, , 42,de fapt, orice simbol %*!@, Obs. Se pot introduce variabile nuntrul lor <?php $an = 2013 ; Acest an este 2013 echo Acest an este: $an ; ?>

Character Escaping
Character Escaping des utilizate sunt:
1. 2. 3. 4. 5. 6. \n (newline character) \t (tabulation character) \$ (dollar sign character) \ (single quote character) \ (double quote character) \\ (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.

Se pot utiliza ghilimele cu apostrofurile imbricat


Nu este nevoie de \ 1. Ghilimele n interiorul apostroafelor <?php echo Ghilimele: in interiorul " apostroafelor ; ?>
Gilimele: in interiorul" apostroafelor.

2. Apostroafe n interiorul ghilimelelor <?php echo Apostroafe: in interiorul ghilimelelor ; ?>


Apostroafe: in interiorul ghilimelelor.

1. Ghilimele n interiorul apostroafelor <?php echo Ghilimele: \ in interiorul \" apostroafelor ; ?>
Gilimele: in interiorul" apostroafelor.

2. Apostroafe n interiorul ghilimelelor <?php echo Apostroafe: \ in interiorul \ ghilimelelor ; ?>


Apostroafe: in interiorul ghilimelelor.

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

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

Aritmetic
A existat exerciiul

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


Un alt exerciiu

An urmator: 2014

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

An urmator: 2014 An curent: 2013

$an=2013

2013 $an

$an = ( $an + 1 )

2014 $an

Exemple Aritmetice
<?php /* Conversie EUR la DKK */ Pentru100 EUR, se primeste 750 DKK $rate = 7.5 ; $euro = 100 ; echo Pentru <b>$euro</b> EUR, se primeste ; $moneda = ( $euro * $rate ) ; // nmulire! echo <b>$moneda</b> DKK. ; ?> <?php /* Conversie DKK la EUR */ $rate = 7.5 ; Pentru 100 DKK, se primeste 13.333333 EURO $moneda = 100 ; echo Pentru <b>$moneda</b> EUR, se primeste ; $euro = ( $moneda/$rate ) ; // mprire! echo <b>$euro</b> DKK. ; ?>

Funcia round()
<?php /* Conversie DKK la EUR */ $rate = 7.5 ; Pentru 100 DKK, se primeste 13 EURO $moneda = 100 ; echo Pentru <b>$moneda</b> EUR, se primeste ; $euro = ( $moneda/$rate ) ; // mprire! $rotunjire=round( $euro ) ; echo <b>$rotunjire</b> DKK. ; ?>

Operatori aritmetici
Operatorii aritmetici sunt: + (adunare) (1+2) - (sucdere) (3-4) * (nmulire) (5*6) / (mprire) (7/8)
<?php $x = 2 ; Rezultatul este:2.5 $y = 5 ; $rezultat = ((1 + (2 - $x)) * ($y / 2)) ; echo Rezultatul este: <b>$rezultat</b> ; ?>

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

BOOLEANS
Un 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. ; }

Expresii boolean
Operatori relaionali == (este egal cu) != (este diferit de ) < (este mai mic dect) > (este mai are dect) <= (este mai mic sau egal) >= (este mai mare sau egal)
<?php $x = 1 ; $y = 2 ; $rezultat = ( $x > $y ) ; echo Rezultatul este: <b>$rezultat</b> ; ?>

( 1 == 1 ) ( 2 != 3 ) (4<5) (7>6) ( 8 <= 9 ) ( 0 >= 0 )

Rezultatul este:false

Prioritatea operatorilor
1. Operatori aritmetici: +, -, *, / 2. Operatori de comparaie: <, >, <=, >= 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) */ ?>

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

Variabila variabilelor n PHP, este posibil de a crea aa-numitele variabile a variabilelor. Aceasta este o variabil al crui nume este coninut ntr-o alt variabil. De exemplu:
$nume='Ion'; $$nume='Maria'; echo $Ion ."<br/>";// afiseaza variabila_variabilei_nume echo $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:

$nume='123'; //din nou se atribuie o valoare $$nume='456'; //folosind acolade se afiseaza valoare 456 echo $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 neles i de documentat, dar, de asemenea, deoarece utilizarea lor necorespunztoare poate duce la unele probleme de semnificative securitate. O tehnica asemanatoare cu variabila a variabilelor poate fi folosita pentru a stoca numele de funcii n interiorul unei variabile:
function myFunc () { echo 'myFunc!'; } $f = 'myFunc'; $f(); // va apela myFunc ();

Determinarea existentei unei valori Unul 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 funcionalitate in momentul in care variabilele nu pot fi disponibile si este nevoie de ele. Pentru a atenua aceast problem, se pot utiliza construcii create cu functia isset() astfel:

echo isset ($x); Explicatie: O apelare a lui isset () va returna adevrat dac o variabil exist i are o valoare, in caz contrar va afisa NULL.

Exemplu 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>

<html><head> <title> Testarea tipului variabilelor</title> </head><body> <?php $test; //declarare fara atribuire echo gettype($test);// null echo "<br>"; $test=8; //declarare cu atribuire echo gettype($test);//integer echo "<br>"; $test=9.8; //declarare cu atribuire echo gettype($test);//double echo "<br>"; $test=curs; //declarare cu atribuire echo gettype($test);//string echo "<br>"; $test=true; //declarare cu atribuire echo gettype($test);//boolean echo "<br>"; ?> </body> </html>

Schimbarea tipului prin folosirea functiei settype():


settype(numevariabila,numetipnou);
<html><head><title> Schimbarea tipului variabilelor</title></head><body><?php $test=9.8; //declarare cu atribuire echo gettype($test);//double echo " "; echo "este $test <br>";//afiseaza:9.8 settype($test,'string'); echo gettype($test);//string echo " "; echo "este $test <br>";//afiseaza:9.8

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

Conversia (castingul) valorii unei variabile Scriind 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);//double echo " "; echo "este $casting <br>";//afiseaza:9.8

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

$casting=(double) $test; echo gettype($casting);//double echo " "; echo "este $casting <br>";//afiseaza:9 $casting=(boolean) $test; echo gettype($casting);//boolean echo " "; echo "este $casting <br>";//1 echo "<hr>"; echo "Tipul variabilei originale este:"; echo gettype($test);//double echo " "; 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.

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 nonnumerice. 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.

Domenii de valabilitate a variabilelor


Variabilele prezint domenii de valabilitate care respect urmtoarele 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 funciilor; 4. variabilele utilizate n cadrul funciilor, care sunt declarate ca fiind globale, se refer la variabila global cu acelai nume; 5. variabilele create n interiorul funciilor, care sunt declarate ca statice sunt invizibile n exteriorul acesteia, pstrnd valoarea de la o execuie la alta; 6. variabilele create n interiorul funciilor sunt valabile doar n interiorul acesteia.

Variabile globale si superglobale


Pag: 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:

Variabilele superglobale sunt:


$_SERVER este un tablou ce conine variabile de mediu ale serverului; $_GET este un tablou ce conine variabile transferate scriptului prin metoda GET; Variabila $_GET este un tablou de perechi (nume, valoare) trimise de metoda HTTP GET. Informaiile trimise cu GET sunt vizibile n bara de adres a browser-ului (max. 100 caractere)

formget.php <form action=exget.php" method="get"> Nume: <input type="text" name="nume" /> Varsta: <input type="textname=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"] ."!"; ?>

PHP $_GET
Nu se folosete cnd se trimit parole Adresa cu valorile cmpurilor poate fi adugat la Favorites sau Bookmarks Nu se folosete cnd se transmit mai mult de 100 de caractere

PHP $_REQUEST
$_REQUEST este un tablou ce conine toate variabilele introduse de utilizator, inclusiv coninutul intrrilor din $_GET, $_POST i $_COOKIE; Poate fi folosit pentru a obine valorile din mai multe formulare (unele folosesc get altele post)

PHP $_POST
Folosit pentru a obine datele din formulare trimise cu metoda post Este un tablou asociativ ce conine variabile transferate scriptului prin metoda POST conine 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>

PHP $_POST
n bara de adres .../expost.php n expost.php

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

$_COOKIE este un tablou ce conine blocuri cookie(mai exact, contine variabile care ii sunt transmise scriptului prin intermediul cookie-urilor) $_FILES este un tablou ce conine variabile legate de ncrcarea fiierelor; $_SESSION este un tablou ce conine 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.

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 informaii 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 fiierului php accesat.

Constante PHP
O constant are un tip i o valoare. Att tipul, ct i valoare, sunt determinate de caracterele care intr n componena constantei. Valoare unei constante nu poate fi schimbat n timpul execuiei programului n care a fost utilizat. Constantele se caracterizeaz prin:
1. li se atribuie o valoare care nu poate fi modificat sau ters de-a lungul execuiei 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 funcia 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.

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

<?php echo "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>;?>

Exemplul 1

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

<?php define("pi",314e-2);//s-adefinit o constanta numerica reala define(sir",Sir de caratere");// constanta de tip sir de caractere echo sir,"<br>";// se afiseaza constanta sir de caractere echo "Constanta pi, aproximata cu 2 zecimale este ",pi;//se afiseaza constanta numerica ?>

Constante Predefinite
<?php echo "<br>"; function exemplu_functie_cosntante(){ echo __LINE__."<BR/>"; echo __FILE__."<BR/>"; ECHO __FUNCTION__."<BR/>"; ECHO __METHOD__."<BR/>"; ECHO PHP_VERSION .<BR/>;

}
exemplu_functie_cosntante(); ?>

Operatori si operanzi PHP


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.

S-ar putea să vă placă și