Stai facendo questi 10 errori in PHP?

Una delle cose migliori di PHP è che è un ottimo linguaggio per "immergersi", grazie alla sua vasta popolarità. Chiunque abbia la possibilità di premere "Cerca" su Google può creare rapidamente un programma. Tuttavia, questo offre anche una critica importante di PHP: è quasi troppo facile trovare e riprodurre codice errato.

Qui ci sono 10 errori di PHP che qualsiasi programmatore, indipendentemente dal livello di abilità, potrebbe fare in un dato momento. Alcuni degli errori sono molto semplici, ma aumentano anche il miglior programmatore PHP. Altri errori sono difficili da individuare (anche con una segnalazione rigorosa degli errori). Ma tutti questi errori hanno una cosa in comune: Sono facili da evitare.

Prenditi il ​​tempo necessario e assicurati che il tuo PHP sia sicuro, pulito e senza intoppi controllando il tuo sito per questi errori comuni di PHP.

1. Citazioni singole, virgolette doppie

È facile usare solo virgolette doppie quando si concatenano le stringhe perché analizza tutto in modo ordinato senza dover gestire caratteri di escape e utilizzando valori di punti. Tuttavia, l'uso di virgolette singole ha notevoli vantaggi in termini di prestazioni, poiché richiede meno elaborazione.

Considera questa stringa:

 # $ howdy = 'tutti'; # $ foo = 'ciao $ howdy'; # $ bar = "ciao $ howdy"; 

$ foo produce "ciao $ howdy" e $ bar ci dà "ciao a tutti". Questo è un passo in meno che PHP deve elaborare. È un piccolo cambiamento che può migliorare significativamente le prestazioni del codice.


Foto di dantaylor.

2. Punto e virgola dopo un while

È divertente come un piccolo personaggio possa creare scompiglio in un programma, senza nemmeno essere segnalato ai log degli errori di PHP! Ad esempio con le virgole e le istruzioni While.

Codeutopia ha un eccellente esempio di questo piccolo errore, mostrando che questi cattivi errori non vengono nemmeno segnalati (nemmeno a E_ALL!), Mentre cade silenziosamente in un loop silenzioso.

 $ i = 0; while ($ i 

Ometti il; dopo l'istruzione while, e il tuo codice è chiaro.


Foto di RTPeat.

3. NON utilizzando la memorizzazione nella cache del database

Se si utilizza un database nell'applicazione PHP, si consiglia vivamente di utilizzare almeno una sorta di memorizzazione nella cache del database. Memcached è emerso come il sistema di caching più popoloso, con siti mastodontici come Facebook che approvano il software.

Memcached è gratuito e può fornire vantaggi significativi al tuo software. Se il tuo PHP è in produzione, si consiglia vivamente di utilizzare il sistema di memorizzazione nella cache.


Foto di aged_accozzaglia.

4. Punto e virgola mancante dopo un'interruzione o Continua

Come il n. 2, un punto e virgola abusato può creare seri problemi mentre scivola silenziosamente nell'ombra, rendendo molto difficile rintracciare l'errore.

Se stai usando un punto e virgola dopo una "interruzione" o "continua" nel tuo codice, convincerà il codice a produrre uno "0" ed uscire. Ciò potrebbe causare alcuni gravi graffi alla testa. Puoi evitarlo usando bretelle con strutture di controllo PHP (tramite CodeUtopia).


Foto di ed_gaillard.

5. Non usando E_ALL Reporting

La segnalazione degli errori è a molto funzionalità pratica in PHP, e se non lo stai già utilizzando, dovresti accenderlo davvero. La segnalazione degli errori elimina gran parte delle congetture dal codice di debug e accelera il tempo di sviluppo complessivo.

Sebbene molti programmatori PHP possano utilizzare la segnalazione degli errori, molti non stanno utilizzando l'intera portata della segnalazione degli errori. E_ALL è un tipo molto severo di segnalazione degli errori e il suo utilizzo garantisce che venga riportato anche l'errore più piccolo. (Questa è una buona cosa se vuoi scrivere un ottimo codice.)

Quando hai finito di sviluppare il tuo programma, assicurati di disattivare i tuoi rapporti, poiché probabilmente gli utenti non vorranno vedere un sacco di messaggi di errore su pagine che altrimenti andrebbero bene. (Anche con l'errore E_ALL che segnala che spero non vedranno comunque errori, ma errori fare accadere.)


Foto di Eliya.

6. Non impostare i limiti di tempo sugli script PHP

Quando vengono eseguiti gli script PHP, si presume che alla fine finiranno in modo tempestivo. Ma ogni buon programmatore lo sa Niente dovrebbe essere assunto in un pezzo di codice. Niente rende un programma più complesso di uno script non responsivo.

Puoi aggirare questo problema semplicemente impostando un limite di tempo sullo script (set_time_limit). Anche se può sembrare una cosa banale, è sempre intelligente prepararsi al peggio.

7. Non proteggere gli ID di sessione

Un errore di sicurezza PHP molto comune non protegge gli ID di sessione con almeno una sorta di crittografia. La mancata protezione di questi ID di sessione è quasi pessima quanto la distribuzione delle password di un utente. Un hacker potrebbe piombare dentro e rubare un ID di sessione, dandogli potenzialmente informazioni sensibili. MT Soft un esempio di come proteggere gli ID di sessione con sha1:

 if ($ _SESSION ['sha1password'] == sha1 ($ userpass)) // fai cose sensibili qui 

L'aggiunta di shai1 a ($ userpass) offre un ulteriore vantaggio per la sicurezza della sessione. Sha1 non è un metodo a prova di proiettile, ma è una bella barriera di sicurezza per tenere a bada gli utenti malintenzionati.

8. Non convalidare i dati sui cookie

Quanta fiducia metti nei cookie? La maggior parte delle persone non ci pensa due volte sul bit di dati apparentemente innocuo che viene passato da un cookie. Il nome "cookie" è associato a Latte, Pisolino e Santa, per gridare forte! Come potrebbe un cookie possibilmente innocuo?

Se non stai convalidando i dati dei cookie, stai aprendo il tuo codice a potenziali dati dannosi. Dovresti usare htmlspecialchars () o mysql_real_escape_string () per validare il cookie prima di memorizzarlo in un database.

9. Non evadere le entità

Molte volte i programmatori PHP si fidano troppo dei dati, in particolare dei dati generati dall'utente. È fondamentale disinfettare i dati prima che entrino in qualsiasi tipo di archiviazione, come un database.

Source Rally ci mostra come rimuovere correttamente le entità in cose come le forme. Invece di usare questo:

 echo $ _GET ['username']; 

È possibile convalidare i dati utilizzando htmlspecialchars () (o htmlentities ()) in questo modo:

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

10. Utilizzo di operatori di confronto errati

Mentre gli operatori di confronto sono una parte di programmazione PHP di base estremamente semplice, mescolarli nel tuo codice è sicuro di mettere in discussione il tuo programma. Come afferma il proverbio tedesco, il Diavolo è nei dettagli.

Avere familiarità con gli operatori spesso maltrattati come =, ==,! =, Sono assolutamente fondamentali per la programmazione PHP. Prendersi il tempo necessario per capire veramente le differenze accelera notevolmente la programmazione e produce meno bug per il debug.



Foto di Foxtongue.