SOAP este un protocol simplu, utilizat pentru transferul de informaţie intr-un mediu descentralizat, distribuit.

Este un protocol bazat pe XML care presupune 3 parţi: un înveliş care defineşte un framework pentru descrierea conţinutului unui mesaj şi cum se procesează acesta, un set de reguli de codificare pentru instanţe ale unor expresii din aplicaţii – tipuri de date definite, şi o convenţie pentru reprezentarea apelurilor şi răspunsurilor procedurilor apelate la distanta. SOAP poate fi utilizat in combinaţie cu o varietate de alte protocoale, in special in combinaţie cu HTTP.

Protocolul SOAP

Exista câteva tipuri diferite ale modelelor de mesaje in SOAP, dar pe departe cel mai comun este modelul Apel de Procedura la Distanta (RPC), in care un nod de reţea (clientul) trimite un mesaj cerere către alt nod (serverul), şi serverul imediat trimite un mesaj răspuns clientului. SOAP este succesorul XML-RPC, de aceea împrumuta transportul şi neutralitatea interacţiunii şi envelope/header/body.

SOAP iniţial a fost perceput ca Simple Object Access Protocol, iar mai târziu şi ca Service Oriented Architecture Protocol, dar acum este doar SOAP. Acronimul original a fost abandonat cu Versiunea 1.2 a Standardului, care a devenit o Recomandare W3C pe 24 Iunie 2003, când denumirea a fost considerata ca fiind derutanta.

Aplicaţiile din ziua de astăzi comunica utilizând “Apelurile de Procedura la Distanta” (RPC – Remote Procedure Calls) dintre obiecte, ca DCOM sau Corba, dar HTTP nu a fost creat pentru acest lucru. RPC reprezintă o problema de compatibilitate şi securitate; firewall-urile şi serverele proxy blochează in mod normal acest tip de trafic.

O cale mai buna de comunicaţie intre aplicaţii este prin HTTP, deoarece HTTP este suportat de toate browserele şi serverele Internet. SOAP a fost creat sa îndeplinească acest aspect.

SOAP furnizează o cale de comunicaţie intre aplicaţii care rulează pe diferite sisteme de operare, cu tehnologii şi limbaje de programare diferite.

UserLand, Ariba, Commerce One, Compaq, Developmentor, HP, IBM, IONA, Lotus, Microsoft şi SAP au propus organizaţiei W3C, in Mai 2000, protocolul SOAP in speranţa ca va revoluţiona dezvoltarea aplicaţiilor prin conectarea interfeţei grafice utilizator a aplicaţiilor desktop la servere puternice Internet, utilizând standardele Internet: HTTP şi XML.

Avantaje

  • Utilizând SOAP cu HTTP este permisa comunicaţia mai buna in spatele unui proxy sau firewall decât presupunea precedenta tehnologie de apel la distanţa.
  • SOAP este destul de versatil pentru a permite utilizarea protocoalelor de transport diferite. Stiva standard utilizează HTTP ca protocol de transport, dar alte protocoale sunt de asemenea utilizabile (TCP, SNMP).

Dezavantaje

  • Din cauza lungimii formatului XML, SOAP poate fi destul de lent in comparaţie cu tehnologiile middleware, cum este CORBA. Aceasta poate sa nu fie o problema când se trimit numai mesaje scurte.
  • Când ne bazam pe HTTP ca protocol de transport, rolurile părţilor care interacţionează sunt stabilite. Doar o parte (clientul) poate utiliza serviciile altuia. Deci dezvoltătorii trebuie sa utilizeze polling in schimbul notificării in aceste cazuri comune.
  • Multe implementări SOAP limitează cantitatea de date care poate fi trimisa.

Daca am reduce populatia Pamantului la un satuc cu 100 oameni, pastrand proportiile reale, situatia ar arata astfel:

57 Asiatici
21 Europeni
14 Americani (din Nord si Sud)
8 Africani
=====================
52 femei
48 barbati
=====================
70 de alta rasa
30 albi
=====================
89 heterosexuali
11 homosexuali
=====================
6 persoane ar detine 59% din toata averea lumii si toti ar fi din USA
80 ar avea conditii proaste de viata
70 ar fi analfabeti
50 ar fi subnutriti
1 ar muri
2 s-ar naste
1 ar avea un computer
1 (unul singur) ar avea educatie superioara

Daca te vei uita astfel la lumea noastra, vei vedea ce mare nevoie avem de solidaritate, intelegere, rabdare, si educatie.

Gandeste-te la asta!

Daca azi de dimineata te-ai trezit sanatos, esti mai fericit decat 1 milion de oameni care nu o sa mai apuce saptamana urmatoare.

Daca ai supravietuit unui razboi, singuratatii dintr-o celula de inchisoare, agoniei torturii foametei, esti mai fericit decat 500 milioane de oameni din aceasta lume.

Daca poti intra sa te rogi intr-o biserica/ moschee fara teama de fi inchis sau ucis, esti mai fericit decat 3 miliarde de oameni din lume.

Daca ai mancare in frigider, ai haine si incaltari, ai un pat si un acoperis, esti mai bogat decat 75% din oamenii acestei lumi.

Daca ai un cont in banca, bani in portofel si ceva monede in pusculita, te numeri printre cei 8% oameni din lume care o duc bine.

Daca citesti acest text esti de doua ori mai norocos, deoarece:
1. cineva tocmai si-a amintit de tine
2. nu apartii celor 2 miliarde de oameni care nu pot citi.

si… Ai un computer!

Dupa cum spunea cineva intelept:
“- munceste ca si cum n-ai avea nevoie de bani,
- iubeste ca si cum nu te-ar rani nimeni niciodata,
- danseaza ca si cum nu te-ar vedea nimeni,
- canta, ca si cum nu te-ar auzi nimeni,
- traieste ca si cum Pamantul ar fi RAIUL.”

NuSOAP este o colecţie de clase PHP care permite utilizatorilor trimiterea şi recepţionarea de mesaje SOAP folosind protocolul HTTP. NuSOAP, cunoscut şi ca SOAPx4, este distribuit de Corporaţia NuSphere (http://www.nusphere.com). Aceasta librărie este open source, licenţiata sub GNU LGPL. NuSOAP este utilizată ca şi nucleu al altor librarii precum PEAR-SOAP.

Unul dintre avantajele NuSOAP este reprezentat de faptul ca nu este o extensie a PHP, şi este scris exclusiv in acest limbaj. Aceasta înseamnă ca poate fi folosit de către orice dezvoltator PHP, indiferent de restricţiile privind accesul la resursele serverului.

Interacţiunea cu serviciile web este realizata prin intermediul clasei soap_client. Aceasta clasa de nivel înalt permite utilizatorilor sa specifice opţiuni precum autorizarea prin HTTP, informaţii despre proxy HTTP, precum şi gestionarea trimiterii si primirii de mesaje SOAP.

Operaţiile SOAP pot fi executate prin pasarea numelui operaţii care se doreşte a fi executate, funcţiei call(). Daca serviciul oferă un fişier WSDL atunci, clasa soap_client preia URL-ul fişierului WDSDL ca argument in constructor, şi utilizează clasa wsdl pentru a parsa informaţia din fişierul WSDL şi a extrage datele.

Clasa soap_client foloseşte aceste date din fişierul WSDL pentru a encoda parametrii şi pentru a crea un “înveliş” SOAP când userul executa un apel al serviciului. Când apelul este executat, clasa soap_client utilizează clasa soap_transport_http pentru a trimite mesajul şi pentru a pentru a primi răspuns. Mesajul-răspuns este parsat de clasa soap_parser. Figura de mai jos descrie procesul consumării unui serviciu web utilizând NuSOAP.

Structura librariei nuSOAP

Însa daca serviciul web nu oferă un fişier WSDL, procesul este diferit. URL-ul serviciului este transmis constructorului clasei soap_client. Operaţiile sunt executate tot folosind apelul funcţiei obiectului soap_client, dar detaliile care erau oferite in cazul precedent de fişierul WSDL trebuie transmise acum ca argumente. Parametrii care sunt de tip special pot fi reprezentate folosind clasa soapval, care permite utilizatorilor sa-i personalizeze.
Atât SOAP cat şi WSDL folosesc tipurile de date descrise in specificaţiile XML. Acest lucru poate fi problematic deoarece PHP nu suporta nativ tipurile de date definite in specificaţii. De asemenea, tipurile de date in XML sunt stricte şi bine definite in timp ce PHP este un limbaj de programare mult mai permisiv, care converteşte automat tipurile de date in funcţie de situaţie. NuSOAP rezolvă aceasta problema pe trei nivele diferite:

  • In WSDL, clasa soap_client a NuSOAP va encoda tipul valorilor corespunzător tipului specificat in documentul WSDL.
  • Clasa soapval din NuSOAP permite utilizatorilor sa definească explicit tipul valorii
  • Daca nici un tip nu este declarat explicit la instanţierea obiectului soapval, NuSOAP va analiza valoarea atribuita acestuia folosind funcţiile interne ale PHP şi o va clasifica ca tip de date valid XML.

123123.jpg

Modul de utilizare a clasei NuSOAP

Următorul exemplu demonstrează procesul de baza al creării unui client SOAP, apelul unui serviciu şi transmiterea parametrilor, şi recepţionarea mesajului.
Următorul exemplu reprezintă serverul care implementează serviciul Hello.

Server:


<?php
//Includerea librariei NuSOAP
include(“nusoap.php”);

//Crearea instantei de server
$server = new soap_server;

//Inregistrareametodei
$server->register(“hello”);

//Definirea metodei ca functie PHP
function hello($name){
if(
is_string($name)){
return 
“Hello, ” $name;
} else {
return new 
soap_fault(“Client”,“”,“Parametrul transmis serviciului trebuie sa fie string!”);
}
}

$raw_post file_get_contents(“php://input”);
$server -> service($raw_post);

?>


Pentru a permite funcţiei sa fie apelata la distanta, aceasta trebuie înregistrata in obiectul server. Daca acest lucru nu se realizează atunci, la apelul funcţiei de către client, serverul va genera o eroare, indicând faptul ca serviciul nu este disponibil. In absenta acestui proces de înregistrare, orice funcţie PHP poate fi disponibila apelului la distanta, ceea ce conduce la probleme grave de securitate.
In cazul in care parametrul transmis funcţiei nu este un sir de caractere se generează o eroare in care se specifica problema. Acesta sarcina revine clasei soap_fault, care se ocupa de tratarea erorilor şi transmiterea acestora in mesajul-răspuns.
Pasul final este reprezentat de apelul metodei service, care procesează cererea primita şi apelează funcţia corespunzătoare. Apoi aceasta formulează răspunsul şi îl printeaza.

Client:


<?php
// Se instantiaza obiectul soap_client. URL-ul serverului se transmite ca argument in constructor
$client = new soap_client(“http://www.w2w.ro/ws_server/hello”);
//Parametrii trebuie transmisi printr-un array  clientului SOAP
$param = array(“name” => “Dobre Marian”);
// Apelul metodei SOAP
$result $client->call(“hello”$param);
if(
$client->fault){
echo 

<h2>Fault</h2>
<pre>”
;
print_r($result);
echo 
“</pre>
;
} else {
$err $client->getError();
if (
$err) {
// Afisarea erorilor
echo 
<h2>Error</h2>
<pre>” 
$err “</pre>
;
} else {
// Afisarea rezultatului
echo 
<h2>Result</h2>
<pre>”
;
print_r($result);
echo 
“</pre>
;
}
}
echo 

<h2>Request</h2>
;
echo 

<pre>” 
htmlspecialchars($client->requestENT_QUOTES) . “</pre>
;
echo 

<h2>Response</h2>
;
echo 

<pre>” 
htmlspecialchars($client->responseENT_QUOTES) . “</pre>

?>


La apelul metodei call() se specifica obiectului soap_client serviciul care se doreşte a fi accesat, apoi se transmite un array cu parametrii, iar metoda returnează răspunsul serverului. Acest răspuns este un tip de date nativ PHP, precum un string, integer sau array.
NuSOAP oferă un mecanism de detecţie al erorilor prin intermediul metodei getError() . Daca a apărut o eroare, aceasta metoda returnează un string care descrie eroarea, sau returnează false in caz de succes. In exemplul prezentat se va printa rezultatul in cazul in care nu a fost generata nici o eroare. Altfel, se va printa mesajul de eroare.

Ultima parte a codului este foarte utila pentru procesul de debug al operaţiilor efectuate de NuSOAP. Proprietăţile request şi response ale clasei soap_client conţin mesajele, inclusiv headerele HTTP transmise de fiecare.

Sfaturile prezentate in acest articol sunt considerate de Google ca fiind “practici recomandate” pentru a creste valoarea site-ului dvs..

Urmatoarele recomandari va ajuta motoarele de cautare sa gaseasca, sa indexeze si sa acorde un rank bun site-ului dvs. Chiar daca alegeti sa nu implementati aceste recomandari ar trebui sa tineti seama de recomandarile de calitate care subliniaza practicile ilicite care pot conduce la penalizari si chiar scoaterea siteului din indexul Google. Daca un site a fost penalizat, el nu va mai fi listat in cautarile efetuate pe Google.com sau in alte motoare de cautare.
Cand site-ul este pregatit:
  • Adaugati linkuri catre site-ul tau pe alte site-uri considerate relevante
  • Submiteti site-ul la Google( http://www.google.com/addurl.html) si alte motoare de cautare.
  • Adaugati Sitemap-ul la Google webmaster tools. Google Sitemaps foloseste sitemap-ul submis pentru a “invata” structura site-ului si pentru a creste “acoperirea” paginilor interne.
  • Adaugati site-ul in directoare web relevante precum Open Directory Project si Yahoo!, precum si in alte site-uri care sunt din aceeasi arie de interes cu site-ul tau.

Sfaturi privind designul si continutul site-ului

  • Construiti site-ul intr-o maniera incat sa existe o ierarhie clara a paginilor si linkuri in format text. Ficare pagina trebuie sa poate fi citita prin intermediul a cel putin unui link static.
  • Oferiti utilizatorilor o harta a site-ului care sa conduca spre sectiunile importante ale site-ului dvs.. Insa daca aceasta harta a site-ului contine mai mult de 100 de linkuri este indicat sa faceti o separare a acesteia pe sectiuni.
  • Este foarte important ca site-ul sa contina informatii relevante, prezentate intr-o maniera incat sa poata fi usor citite de spideri.
  • Faceti o analiza a cuvintelor dupa care credeti ca utilizatorii vor efectua cautari pe motoarele de cautare si asigurati-va ca aceste cuvinte vor fi prezente in paginile site-ului.
  • Folositi text in locul inaginilor pentru a afisa nume, continut sau linkuri. Crawler-ii Google nu recunosc textul continut in imagini.
  • Asigurati-va ca TITLE-urile din pagina si ALT-urile sunt cat mai relevante si corecte.
  • Verificati sa nu existe “broken links” (linkuri care duc la o pagina care nu mai exista)
  • Daca site-ul este construit pe o tehnologie care genereaza paginile dinamice (URL-ul contine caracterul “?”) trebuie sa tineti seama ca nu toti spiderii motoarelor de cautare citesc paginile dinamice la fel ca pe cele statice. Incearcati pe cat posibil sa pastrezi numarul parametrilor scurt si cat mai mic. A se avea un vederere si tehnica de rewrite a linkurilor.
  • Pastrati linkurile catre o pagina la un numar rezonabil (mai mic de 100).

Recomandari tehnice

  • Folositi un browser in mod text, precum Lynks pentru a examina site-ul, pentru ca majoritatea spiderilor motoarelor de cautare vad paginile site-ului tau precum se vede in Lynks. Daca se folosesc tehnologii precum JavaScript, cookies, ID-uri de sesiune, frame-uri, DHTML, sau Flash, acestea pot impiedica spiderii motoarelor de cautare sa parcurga corect paginile si sa citeasca informatia.
  • Permiteti spiderilor motoarelor de cautare sa parcurga site-ul fara ID-uri de sesiune sau alti parametrii care sa retina calea urmata prin site. Aceste tehnici sunt folositoare pentru urmarirea rutei parcurse de utilizatori, dar algoritmul pe care il utilizeaza botii motoarelor de cautare este complet diferit. Folosirea acestor tehnici pot duce la indexarea incompleta a site-ului, iar botii nu pot determina URL-urile care arata diferit dar, de fapt, duc la aceeasi pagina.
  • Asigurati-va ca serverul pe care este postat site-ul suporta headerul HTTP If-Modified-Since. Acesta permite serverului web sa transmita motoarelor de cautare daca a fost modificat continutul de la ultima indexare a site-ului. Activarea acestei optiuni va scuteste de traficul inutil efectuat de spideri pentru citirea unei informatii care nu s-a modificat.
  • Foloseste fisierul robots.txt. Acesta “spune” crawler-ilor care directoare pot fi parcurse si care nu. Pentru a invata cum se construieste acest fisier poti vizita http://www.robotstxt.org/wc/faq.html. Poteti testa corectitudinea robots.txt cu robots.txt analysis tool disponibila in Google Sitemaps.
  • Daca folositi o solutie de tip CMS (Content Management Sisitem), asigurati-va ca sistemul poate livra continutul intr-o forma care sa poata fi citita de spiderii motoarelor de cautare.

Recomandari calitative

Aceste recomandari calitative acopera formele cele mai des intalnite ale comportamentelor duplicitare sau manipulatoare, dar Google poate raspunde negativ si la alte practici derutante care nu sunt prezentate aici. Google utilizeaza, de asemenea, un sistem de raportari ale tehnicilor abuzive folosite de unele site-uri. Acestea pot fi folosite pentru a imbunatati algoritmii de recunoastere a incercarilor de spam, etc..

Recomandari calitative - principii de baza
  • Paginile trebuie construite pentru utilizatori, nu pentru motoarele de cautare. Nu este indicat sa se creeze continut pentru motoarele de cautare diferit de continutul prezentat utilizarilor, tehnica denumita traditional “cloaking”.
  • Evitati trucurile folosite pentru a creste rank-ul in motoarele de cautare. Este important sa folositi tehnici care sa vizeze utilizatorii si nu motoarele de cautare.
  • Nu intrati in scheme de linkuri pentru a creste notorietarea site-ului sau PageRank-ul. Folosirea acestei tehnici poate duce la efectul invers prin depunctarea site-ului si scaderea PageRank-ului.
  • Nu folositi softuri neautorizate pentru a submite paginile, sau a creste PageRank-ul, etc..

Recomandari calitative - recomandari specifice

  • Evitati textele sau link-urile ascunse(invizibile)
  • Nu utilizati tehnici gen “cloaking” sau redirectari dubioase
  • Nu trimiteti interogari automate catre Google
  • Nu incarcati pagini care contin cuvinte irelevante
  • Nu creati mai multe pagini, subdomenii sau domenii cu continut duplicat
  • Nu creati pagini care contin virusi, troieni sau alte softuri rau intentionate
  • Daca site-ul participa la un program afiliat, asigurati-va ca prin continut adaugati valoare acesuia. Adaugati continut unic si relevant care ofera utilizatorilor motive sa va viziteze site-ul.

PageRank-ul Google (prescurtat PR) reprezinta o valoare numerica asignata de Google paginilor web pentru a evidentia importanta sa din punctul de vedere al motorului de cautare. Cu cat o pagina este mai importanta, aceasta va primi un PR mai mare. PR se calculeaza pe o scara de la 0 la 10, 0 reprezentand o pagina care are o importanta minima pentru Google, iar 10 fiind nota maxima pe care o poate obtine.

PageRank este baza pentru uneltele de cautare web. El este continuu updat-at de Google in ideea imbunatatirii si optimizarii acestuia.

Cum este calculat PageRank-ul?

Nimeni nu stie exact cum este calculat PageRank-ul, in afara de Google insusi, bineinteles. Exista speculatii referitoare la algoritmul de calcul, bazate pe documentul original publicat de Google.

In esenta, Google interpreteaza un link de la pagina A catre pagina B ca fiing un vot dat de pagina A paginii B. Acest lucru inseamna ca, cel putin pentru pagina A, pagina B este considerata importanta.

Cu cat mai multe link-uri are o pagina cu atat este considerata mai importanta pentru Google, si, deci, va avea un page rank mai mare.

Aspecte importante in calcularea PageRank-ului

Asa cum am aratat mai sus, principalul factor in calculul PageRank-ului sunt link-urile (denumite si backlinks). Dar nu toate link-urile au aceeasi “greutate” in formula de calcul. Altfel spus, unele linkuri ofera mai mult PageRank decat altele.

Este intotdeauna important sa obtii backlink-uri de la pagini care au un PageRank cat mai mare. Acestea vor avea o pondere mai mare decat restul. Acesta este aspectul calitativ, insa nu trebuie neglijat nici asteptul cantitativ. Este important sa ai cat mai multe backlink-uri. Orice “vot” conteaza!

Un alt aspect care conteaza este numarul de link-uri care “pleaca” dintr-o pagina care iti ofera votul. Adica un vot de la o pagina care are PR4, dar numai catre site-ul tau, poate sa conteze mai mult decat o pagina care are PR5 dar cu mai multe linkuri externe. Se considera ca pagina da un singur vot “puternic”, de incredere, si nu mai multe “slabe”.

Cum sa cresti PageRank-ul unei pagini?

Cum era probabil de asteptat, un PageRank mare poate fi obtinut prin cresterea numarului de backlink-uri catre pagina ta. Cu cat aveti mai multe linkuri care fac referire catre pagina cu atat mai mare va fi PR-ul.

Exista cateva modalitati de a face acest lucru:

  • Inregistrati site-ul in cat mai multe directoare web
  • Scrieti continut de calitate care sa determine oamenii sa puna link-uri catre site
  • Scrieti articole si distribuiti-le
  • Participati la discutii pe forumuri(adaugati link catre site in semnatura)
  • Cumparati linkuri pe pagini cu PageRank cat mai mare

Cand calculeaza Google PageRank-ul?

Google calculeaza PageRank-ul odata la cateva luni( operatiune denumita “PageRank update” ). Dupa modificarea PageRank-ului toate paginile beneficiaza de un PageRank nou care nu va fi modificat decat la urmatorul update. Site-urile nou lansate vor avea PageRank 0 pana la urmatorul update cand acesta va lua valoarea corespunzatoare.

Alti factori care pot fi luati in calcul

Acesti factori pot fi luati in considerare de Google in calculul PageRank-ului :

  • Varsta site-ului: cu cat un site este mai “batran” cu atat mai mult, se pare, ca este mai “bine vazut” de Google
  • Relevanta backlink-urilor care va ofera “votul”: daca votul dat de o pagina care este incadrata de Google in acelasi domeniu cu site-ul dvs., Google il poate intrepreta ca fiind mai important
  • Durata backlink-urilor: cu cat mai vechi, cu atat mai bine!

Ce sunt seviciile web?

W3C defineste “serviciu web” ca fiind un software proiectat pentru a suporta interactiunea intre doua masini diferite dintr-o retea. Serviciile web sunt, de multe ori, doar API-uri (Aplication Programming Interfaces) care pot fi accesate peste o retea,servicii web precum Internet-ul.

Un exemplu de serviciu web este SOAP, un protocol bazat pe XML, care foloseste WSDL ca limbaj de descriere.

Un serviciu web este o colecţie de protocoale şi standarde folosite pentru schimbul de date între aplicaţii sau sisteme. Aplicaţii software scrise în limbaje de programare diferite şi care rulează pe diverse platforme pot folosi serviciile web pentru a face schimb de date pe reţea, pe Internet, într-o manieră asemănătoare comunicării inter-procese pe un singur calculator. Interoperabilitatea se datorează standardelor publice folosite.

Remote procedure call (RPC)

Este o tehnologie care pemite unui software sa apeleze o alta procedura (subrutina, functie) pe alta masina (in mod uzual pe alt computer), fara ca programatorul sa fie nevoit sa cunoasca toate detaliile in care cele doua sisteme interactioneaza. Programatorul va scrie acelasi cod indiferent daca va apela subrutina local sau remote.

Primele unelte care au folosit servicii web au fost orientate catre abordarea RPC, si, din acest motiv, acesta a primit suportul masiv al dezvoltatorilor.

Service-oriented Arhitecture

De asemenea, serviciile web au fost folosite pentru a implementa o arhitectura corespunzatoare cu conceptele SOA (Service-oriented arhitecture), unde unitatea de baza a comunicatiei este mesajul, nu operatia. In acest caz, ne referim la servicii “orientate-mesaj”.

Reprezentational State Transfer (REST)

Serviciile web REST incearca sa emuleze HTTP si alte protocoale similare aplicand interfetei constrangeri la un set bine cunoscut de operatii (ex.: GET, PUT, DELETE). In acest caz, accentul cade pe interactiunea cu resursele de stare, decat pe mesaje si operatii.Serviciile web de tip REST pot folosi WSDL pentru a descrie mesaje SOAP peste HTTP, care definesc operatiile.

This post is password protected. To view it please enter your password below:

Daca aveti un website care foloseste baze de date, probabil ca aveti nevoie si de afisarea informatiilor pe mai multe pagini printr-o modalitate simpla si care sa poata fi usor implementata pentru orice caz.

De ce avem nevoie de paginare?

Sa ne inchipuim ca in site-ul nostru avem o sectiune care afiseaza produse din baza de date sub forma unui listing. Din motive de estetica si ergonomie insa, nu vom putea afisa toate produsele pe aceeasi pagina. De aceea, este o idee buna sa impartim rezultatul in mai multe pagini.

Descrierea sistemului

Paginarea reprezinta, de fapt, impartirea unui mare numar de date in mai multe pagini. Navigarea in aceste pagini se va face prin intermediul unor linkuri afisate sub forma:

Pima pag Precedenta 1 2 3 4 5 Urmatoarea Ultima pag

In scop didactic, vom considera ca sistemul nostru trebuie sa genereze paginarea pentru afisarea unui numar foarte mare de produse dintr-o baza de date.

Ganditi-va ca numarul total de pagini este mai mare decat 20. Pentru estetica in afisare, ar fi o idee buna sa afisam doar un numar din acestea in functie de pagina curenta. Astfel, in partea stanga si dreapta de pagina curenta vom avea, sa zicem, maxim 5 linkuri.

Sistemul pe care il voi prezenta in continuare are urmatoarele particularitati:

  • poate fi folosit pentru orice caz de paginare
  • utilizeaza o functie care poate fi portata pentru orice alta aplicatie
  • functia va returna un array pe care il vom putea prelucra ulterior
  • poate fi folosita in cazul in care utilizam un sistem “template engine” (gen Smarty)

Algorim

Pentru inceput sa evidentiem variabilele care intervin in paginare:

  • pagina curenta (de obicei preluata prin $_GET)
  • numarul de produse afisate pe o pagina
  • numarul total de produse
  • numarul total de pagini
  • numarul maxim pe linkuri afisate in stanga/dreapta paginii curente

Ne conectam la BD

Efectuam o interogare asupra BD pentru a afla numarul total de produse

Calculam numarul total de pagini in functie de numarul total de produse si numarul de produse care se afiseaza pe pagina.

Construim functia care se va ocupa de generarea propriu zisa a paginarii. Aceasta functie va returna un array care va contine textul si url-ul fiecarui element din paginare.

Orice dezvoltator de aplicatii web care se respecta trebuie sa cunoasca principiile rescrierii linkurilor.

Ce inseamna “url rewriting”?

Pe romaneste “rescrierea URL-urilor”, reprezinta de fapt o metoda de scriere “on the fly” a URL-urilor, iar mod_rewrite este modulul din Apache care ne permite acest lucru.
mod_rewrite este folosit pentru rescrierea URL-urilor la nivel de server. De exemplu, un utilizator face o cerere pentru htp://www.numesite.com/ro/produse, insa, de fapt, serverul ii va returna htp://www.numesite.com/index.php?language=ro&page=produse. Bineinteles ca utilizatorului ii va fi ascuns acest aspect.
Pentru a intelege mai bine tehnicile de rewriting ar trebui sa explicam cateva notiuni:

De ce este util url rewriting ?

  • imbunatateste gradul de securitate al aplicatiei
  • estetica URL-urilor
  • indexarea mai usoara de catre motoarele de cautare
  • URL-urile vor fi “search engine friendly”
  • URL-urile sunt mai usor de retinut de catre utilizatori

URL rewriting imbunatateste gradul de securitate al aplicatiei

Una din metodele folosite pentru a ataca un site este modificarea parametrilor transmisi prin GET(cu alte cuvinte modificarea URL-ului). Aceasta practica este des utilizata in atacurile “sql injection” care pot afecta grav baza de date a site-ului si integritatea datelor.
Sa zicem ca avem un script care afiseaza produsele dintr-o categorie:

www.numesite.ro/produse.php?id_categorie=123

iar hackerul rau intentionat scrie

www.numesite.ro/produse.php?id_categorie=atac

Aceasta actiune va determina in mod normal o eroare la interogarea ce se efectueaza in baza de date si afisarea acesteia in browser.

URL rewriting face ca URL-urile sa fie “search engine friendly”
Exista mitul care spune ca motoarele de cautare nu indexeaza paginile care contin mai multi parametrii (de tipul www.numesite.ro/pagina.php?categorie=123&produs=321&language=ro ). Este o opinie infirmata de majoritatea motoarelor de cautare insa url rewriting este o tehnica foarte puternica de SEO (Search Engine Optimization).

URL-urile vor fi mai usor de retinut de catre utilizatori

Este mult mai usor de retinut un link de forma

www.numesite.ro/Stiri/Imobiliare/

decat

www.numesite.ro/pagina.php?id=123456789

Utilizatorul va time minte mai usor prima forma a URL-ului si va fi mai simplu de identificat din lista de adrese vizitate a browser-ului, in cazul in care pagina a fost vizitata in prealabil.

A popular debate is how to run 2 versions of PHP at the same time. This extract shows two ways to achieve this.

Requirements:

  • Apache 2x installed
  • PHP versions

This assumes that you have followed the steps outlined in the other articles in this section. In this example we will add PHP6 to the existing installation of PHP5.2.x.

(more…)

Next Page »