2012-10-07 10 views
6

Da quello che ho letto, sembra che $_SERVER['REQUEST_URI'] non sia sempre stringhe di query restituite correttamente, ma qualcuno ha un buon senso di ciò che è il tasso di successo? Funzionerà nella maggior parte dei casi per il cliente medio?

Cosa, se possibile, non causa l'inserimento di REQUEST_URI o la stringa di query?

+6

In genere è 0% o 100%. Dipende dal server –

+1

Cosa c'è di sbagliato in '$ _GET'? –

+0

@WesleyMurch: Quindi è completamente fino al server? Sembra che funzioni per me. Significa che è sicuro assumere che dovrebbe funzionare per qualsiasi utente? –

risposta

6

ti ha chiesto:

cosa, se mai, causerebbe REQUEST_URI di non essere popolato?

risposte che mi vengono in mente:

  1. Il server web fornisce tutti i valori $_SERVER a PHP, quindi se il server non fornisce loro, allora non saranno impostati. Questo è altamente improbabile con qualsiasi server web decente, ma è possibile.

  2. Se si esegue un programma PHP dalla riga di comando, non avrà alcun valore $_SERVER. (Nel caso in cui non siete preoccupati per questo, tenere a mente che i test di unità sono in genere eseguite da una riga di comando, quindi non importa se si sta seguendo le best practice e la scrittura di unit test)

1

Cosa, se non altro, farebbe sì che REQUEST_URI non venga popolato?

Una ricerca di Google sembra indicare questo per essere stato il caso con IIS (ma ciò che era vero allora, potrebbe non essere la società):

https://bugs.launchpad.net/xibo/+bug/654536 

(c'è un articolo su una correzione per IIS : http://davidwalsh.name/iis-php-server-request_uri)

così come gli altri casi in cui il "server" non era il vostro standard di server web (ad esempio plugin del server di debug, ecc).

È stato rilevato ma considerato un errore nelle versioni meno conosciute o meno recenti dei server Web (lighthttpd, iPlanet Web Server 7.0).

Quindi credo che si possa essere ragionevolmente sicuri che la variabile verrà sempre popolata. Naturalmente, sarebbe saggio preparare uno script di test molto piccolo da eseguire sul sito del cliente il prima possibile per essere avvisati.

Problemi correlati