Efectuați aceste 10 greșeli PHP?

Unul dintre cele mai bune lucruri despre PHP este că este un limbaj excelent pentru a "scufunda", datorită popularității sale largi. Oricine are capacitatea de a lovi "Căutare" pe Google poate crea rapid un program. Cu toate acestea, acest lucru se datorează, de asemenea, unei critici majore a PHP: este aproape prea ușor să găsiți și să reproduceți codul rău.

Iată 10 greșeli PHP pe care orice programator, indiferent de nivelul de calificare, le-ar putea face oricând. Unele dintre greșelile sunt foarte de bază, dar se fac chiar și cei mai buni programatori PHP. Alte greșeli sunt greu de identificat (chiar și cu raportare strictă a erorilor). Dar toate aceste greșeli au un lucru în comun: Sunt ușor de evitat.

Luați-vă timp și asigurați-vă că PHP este sigur, curat și funcționează fără probleme, verificând site-ul dvs. pentru aceste gafe PHP comune.

1. Citate simple, ghilimele duble

Este ușor să folosiți doar citate dublate atunci când concatenați șiruri de caractere, deoarece analizează totul cu ușurință fără a trebui să se ocupe de caracterele care au ieșit și folosind valorile punctuale. Cu toate acestea, utilizarea cotelor unice are câștiguri considerabile de performanță, deoarece necesită mai puțin procesare.

Luați în considerare acest șir:

 # $ howdy = 'toată lumea'; # $ foo = 'hello $ howdy'; # $ bar = "hello $ howdy"; 

Exercițiile $ foo pentru "hello $ howdy" și $ bar ne oferă "hello everyone". Acesta este un pas mai mic pe care PHP trebuie să-l proceseze. Este o mică schimbare care poate aduce câștiguri semnificative în performanța codului.


Fotografie de dantaylor.

2. punct și virgulă după o perioadă

Este amuzant cum un personaj mic poate crea un dezastru într-un program, fără a fi raportat chiar la jurnalele de eroare PHP! Cum ar fi cu punct și virgulă.

Codeutopia are un exemplu excelent al acestei mici erori, arătând că aceste erori neplăcute nu sunt nici măcar raportate (chiar și la E_ALL!), Deoarece acestea cad în liniște într-o buclă tăcută.

 $ i = 0; în timp ce (i $ 

Omiteți; după declarația în timp, iar codul dvs. este clar.


Fotografie de RTPeat.

3. NU Utilizarea cache-ului bazei de date

Dacă utilizați o bază de date în aplicația dvs. PHP, este recomandat să utilizați cel puțin un fel de cache de baze de date. Memcached a apărut ca cel mai plop de cache sistem, cu site-uri mamut ca Facebook susține software-ul.

Memcached este gratuit și poate oferi câștiguri foarte importante pentru software-ul dvs. Dacă PHP dvs. intră în producție, este recomandat să utilizați sistemul de cache.


Fotografie de aged_accozzaglia.

4. Golirea punctului de mijloc după o pauză sau o continuare

Ca și în cazul # 2, un punct și virgulă abuzat poate crea probleme grave în timp ce alunecă tăcut în umbre, ceea ce face destul de dificilă urmărirea erorii.

Dacă utilizați un punct și virgulă după o "pauză" sau "continuați" în codul dvs., acesta va convinge codul să dea un "0" și să iasă. Acest lucru poate provoca zgârieturi grave ale capului. Puteți evita acest lucru prin folosirea armăturilor cu structuri de control PHP (prin CodeUtopia).


Fotografie de ed_gaillard.

5. Nu utilizați raportarea E_ALL

Raportarea erorilor este a foarte la îndemână în PHP, iar dacă nu îl folosiți deja, ar trebui să îl porniți. Raportarea erorilor ia mare parte din presupuneri din codul de depanare și accelerează timpul de dezvoltare generală.

În timp ce mulți programatori PHP pot utiliza raportarea de erori, mulți nu utilizează întinderea completă a rapoartelor de eroare. E_ALL este un tip foarte strict de raportare a erorilor, iar utilizarea acestuia asigură că este raportată chiar și cea mai mică eroare. (Asta e un lucru bun dacă vrei să scrii un cod grozav.)

După ce ați terminat să vă dezvoltați programul, asigurați-vă că dezactivați raportarea, deoarece utilizatorii dvs. probabil că nu vor dori să vadă o mulțime de mesaje de eroare pe paginile care altfel apar bine. (Chiar și cu raportarea erorilor E_ALL pe care sperăm că nu o vor vedea oricum, dar greșeli do întâmpla.)


Fotografie de Eliya.

6. Nu setați limitele de timp pe Script-uri PHP

Când rulează scripturile PHP, se presupune că vor termina în cele din urmă în timp util. Dar fiecare programator bun știe asta nimic ar trebui să fie asumat într-o bucată de cod. Nimic nu face un program mai crankier decât un script lipsit de răspuns.

Puteți rezolva această problemă prin setarea pur și simplu a unei limite de timp pentru script (set_time_limit). Deși poate părea un lucru banal, este întotdeauna inteligent să se pregătească pentru cel mai rău lucru.

7. Nu protejați ID-ul sesiunii

O foarte frecventă eroare de securitate PHP nu protejează ID-ul sesiunii cu cel puțin un fel de criptare. Nu protejarea acestor ID-uri de sesiune este aproape la fel de proastă precum dezvăluirea parolelor unui utilizator. Un hacker ar putea intra și ar putea să fure un ID de sesiune, oferindu-i informații sensibile. MT Soft un exemplu de protejare a ID-ul sesiunii cu sha1:

 dacă ($ _SESSION ['sha1password'] == sha1 ($ userpass)) / face lucruri sensibile aici 

Adăugarea shai1 la ($ userpass) oferă un plus de securitate secțiunii. Sha1 nu este o metodă antiglonț, dar este o barieră de siguranță pentru a păstra utilizatorii rău intenționați.

8. Nu validarea datelor cookie

Cât de multă încredere puneți în cookie-uri? Majoritatea oamenilor nu se gândesc de două ori la bitul aparent inofensiv de date care a trecut de un cookie. Numele "cookie" în sine este Lapte asociat, timp de nap și Santa, pentru plâns cu voce tare! Cum ar putea un cookie posibil inofensiv?

Dacă nu validați datele cookie, vă deschideți codul pentru potențialele date dăunătoare. Ar trebui să utilizați htmlspecialchars () sau mysql_real_escape_string () pentru a valida cookie-ul înainte de ao memora într-o bază de date.

9. Entități care nu au scăpat

De multe ori programatorii PHP sunt prea încredere în date, în special datele generate de utilizator. Este imperativ să dezinstalați datele înainte de a intra în orice fel de spațiu de stocare, cum ar fi o bază de date.

Sursa Raliului ne arată cum să scăpăm corect de entități în lucruri precum formele. În loc de a utiliza acest lucru:

 echo $ _GET ['username']; 

Puteți valida datele utilizând htmlspecialchars () (sau htmlentities ()) cum ar fi:

 echo htmlspecialchars ($ _GET ['username'], ENT_QUOTES); 

10. Utilizarea operatorilor de comparare greșită

În timp ce operatorii de comparare sunt o parte extrem de bază de programare PHP, amestecarea acestor în codul dvs. este sigur să vă bork programul. După cum spune proverbul german, diavolul se află în detaliu.

Familiarizarea cu operatorii adulți adesea folosiți ca =, ==,! = Sunt absolut critici pentru programarea PHP. Luând timp pentru a înțelege cu adevărat diferențele va accelera foarte mult de programare și de randament mai puține bug-uri pentru a depana.



Fotografie de Foxtongue.
Cod