En av de beste tingene med PHP er at det er et flott språk for å bare "dykke inn", takket være den brede populariteten. Alle som har muligheten til å treffe «Søk» på Google, kan raskt lage et program. Dette gir imidlertid også en stor kritikk av PHP: det er nesten for enkelt å finne og gjengi dårlig kode.
Her er 10 PHP feil som noen programmerer, uavhengig av ferdighetsnivå, kan gjøre til enhver tid. Noen av feilene er veldig grunnleggende, men gå opp selv den beste PHP-programmereren. Andre feil er vanskelig å få øye på (selv med streng feilrapportering). Men alle disse feilene har en ting til felles: De er enkle å unngå.
Ta deg tid og sørg for at PHP-en din er sikker, ren og kjører jevnt ved å sjekke nettstedet ditt for disse vanlige PHP-blunders.
Det er enkelt å bare bruke doble anførselstegn ved sammenkobling av strenger fordi det analyserer alt pent, uten å måtte forholde seg til å rømme tegn og bruke prikkverdier. Imidlertid har bruk av enkeltnoteringer betydelige ytelsesgevinster, da det krever mindre behandling.
Vurder denne strengen:
# $ howdy = 'alle'; # $ foo = 'hei $ howdy'; # $ bar = "hei $ howdy";
$ foo utganger til "hei $ howdy" og $ bar gir oss "hei alle". Det er et mindre skritt som PHP må behandle. Det er en liten endring som kan gi betydelige gevinster i kodenes utførelse.
Det er morsomt hvordan et lite tegn kan skape kaos i et program, uten at det blir rapportert til PHP-feilloggene! Slik som det er med semikolon og Mens uttalelser.
Codeutopia har et utmerket eksempel på denne lille feilen, og viser at disse ekkelfeilene ikke engang blir rapportert (til og med E_ALL!), Da det tydelig faller inn i en stille loop.
$ i = 0; while ($ iUtelat; etter stund uttalelsen, og koden din er i klare.
Bilde av RTPeat.3. IKKE Bruke database caching
Hvis du bruker en database i PHP-applikasjonen, anbefales det sterkt at du i det minste bruker en slags database-caching. Memcached har dukket opp som den mest poplar caching system, med mammut nettsteder som Facebook godkjenne programvaren.
Memcached er gratis og kan gi svært betydelige gevinster til programvaren din. Hvis PHP er i produksjon, anbefales det sterkt å bruke caching-systemet.
Bilde av aged_accozzaglia.4. Mangler semikolon etter en pause eller en fortsettelse
Som # 2 kan en misbrukt semikolon skape alvorlige problemer mens du slipper stille i skyggene, noe som gjør det ganske vanskelig å spore feilen ned.
Hvis du bruker et semikolon etter en "pause" eller "fortsett" i koden din, vil den overbevise koden om å sende ut en "0" og avslutte. Dette kan føre til at et seriøst hode skraper. Du kan unngå dette ved å bruke braces med PHP kontrollstrukturer (via CodeUtopia).
Bilde av ed_gaillard.5. Ikke bruk E_ALL Rapportering
Feilrapportering er en veldig Hendig funksjon i PHP, og hvis du ikke allerede bruker den, bør du virkelig slå den på. Feilrapportering tar mye av gjetningen av feilsøkingskoden, og øker hastigheten til den totale utviklings tiden.
Mens mange PHP-programmerere kan bruke feilrapportering, bruker mange ikke den fulle omfanget av feilrapportering. E_ALL er en svært streng type feilrapportering, og ved å bruke den sikrer at selv den minste feilen rapporteres. (Det er bra hvis du ønsker å skrive god kode.)
Når du er ferdig med å utvikle programmet, må du slå av rapporteringen din, da brukerne sannsynligvis ikke vil se en rekke feilmeldinger på sider som ellers ser bra ut. (Selv med E_ALL feilrapporteringen vil de forhåpentligvis ikke se noen feil, men feil gjøre skje.)
Bilde av Eliya.6. Ikke angi tidsgrenser på PHP-skript
Når PHP-skript kjører, antas det at de til slutt vil ende i tide. Men hver god programmør vet det ingenting bør antas i et stykke kode. Ingenting gjør et program crankier enn et svar som ikke svarer.
Du kan omgå dette problemet ved å bare angi en tidsbegrensning på skriptet (set_time_limit). Selv om det kan virke som en trivial ting, er det alltid smart å forberede seg på det verste.
7. Beskytter ikke sesjons-ID
En svært vanlig PHP-sikkerhetsfeil beskytter ikke økt-ID-er med minst en slags kryptering. Ikke å beskytte disse sesjons-IDene er nesten like ille som å gi bort brukerens passord. En hacker kunne våkne inn og stjele en økt-ID, noe som kunne gi sensitiv informasjon til ham. MT Mykt et eksempel på hvordan du beskytter sesjons-ID med sha1:
hvis ($ _SESSION ['sha1password'] == sha1 ($ brukerpass)) // gjør sensitive ting herLegge til shai1 til ($ brukerpass) gir en ekstra sikkerhet til økten. Sha1 er ikke en bulletproof metode, men det er en fin sikkerhetsbarriere for å holde skadelige brukere i sjakk.
8. Ikke validering av informasjonskapsler
Hvor mye tillit legger du i informasjonskapsler? De fleste tror ikke to ganger om den tilsynelatende ufarlige biten av data som er passert av en cookie. Navnet "cookie" i seg selv er assosiert med melk, tuppetid og santa, for å gråte høyt! Hvordan kunne en kake muligens uskadelig?
Hvis du ikke validerer informasjonskapsler, åpner du koden for potensielle skadelige data. Du bør bruke htmlspecialchars () eller mysql_real_escape_string () for å validere cookien før du lagrer den i en database.
9. Ikke unnslippe enheter
Mange ganger PHP-programmerere er for å stole på data, spesielt data generert av brukeren. Det er viktig å sanitere data før det går inn i noen form for lagring, som en database.
Source Rally viser oss hvordan du kan unnslippe enheter i ting som for eksempel. Istedenfor å bruke dette:
ekko $ _GET ['brukernavn'];Du kan validere dataene ved hjelp av htmlspecialchars () (eller htmlentities ()) som slik:
ekko htmlspecialchars ($ _ GET ['brukernavn'], ENT_QUOTES);10. Bruk av feil sammenligningsoperatører
Mens sammenligning operatører er en ekstremt grunnleggende del PHP programmering, er det sikkert å blande disse opp i koden til programmet. Som det tyske ordtaket sier, er djevelen i detaljene.
Å være kjent med de ofte misbrukte operatørene som =, ==,! =, Er helt avgjørende for PHP-programmering. Tar deg tid til å virkelig forstå forskjellene, vil øke hastigheten på programmeringen og gi mindre feil for å feilsøke.
Foto av Foxtongue.