$_SERVER['PHP_SELF'] postato il 11/11/2012 02:32:02 nel forum programmazione, gdrcd, open source, hosting e modificato da ilgrandeinverno il 11/11/2012 02:34:16
Ecco alla prima grana incontrata durante il cambio di servizio hosting... (Aruba -> Netsons).
Se nell'ipotetico script collocato su "www.nomesito.it/sito/directory/pagina.php" uso la variabile $_SERVER['PHP_SELF'], la variabile assume due valori diversi:
Su aruba valorizza: -> pagina.php
Su netsons valorizza: -> /sito/directory/pagina.php
Con ovvie, sgradevoli, conseguenze in termini di redirect errati se uso la variabile all'interno di un link o come destinazione di un form. In effetti il comportamento anomalo sembrerebbe quello di aruba, dato che di default dovrebbe restituire anche il path e non solo il filename.
Inoltre su aruba vengono passati anche gli eventuali parametri GET che seguono il nome dello script, mentre su netsons sembra sia conveniente passarli esplicitamente ad ogni invio tramite form come valori input hidden, perché PHP_SELF non se li porta dietro.
Qualcuno sa dirmi se di conseguenza é possibile modificare la valorizzazione della variabile dal php.ini?
Viceversa ho come uniche soluzioni usare esplicitamente il nome della pagina, oppure fare una sostituzione massiva con una funzioncina che "esploda" il valore e mi restituisca solo il filename senza il path?
ps: insulti e ortaggi per aver "approfittato" dell'anomalia di aruba, in privato, grazie.... -.-
Pagine → 1
11/11/2012 09:31:05
prova
echo "<pre>";
print_r($_SERVER);
cosi vedi cosa è associato a ogni variabile.. comunque si credo che si possa modificare da php.ini anche se nn lo ho mai fatto...
hai provato a prendere il php.ini e fare tipo 'trova' mettendo come parola $_SERVER o php_self ?
11/11/2012 14:08:40
L'implementazione del contenuto della variabile $_SERVER è delegata completamente al webserver, non è modificabile da php.ini.
Sulla pagina della documentazione ufficiale di PHP è scritto di non affidarsi ciecamente ai contenuti di $_SERVER, proprio perchè dipende dal server web che c'è dietro.
Beh...sinceramente la soluzione più giusta e pulita sarebbe iniziare a utilizzare la variabile nel modo utilizzato più comunemente, cioè quello fornito da netsons. Cambiando cioè tutti i punti in cui viene usata. Magari anche usando una funzione che prepara l'url in modo corretto, così devi farlo una sola volta e devi solo sostituire tutti i punti in cui viene usata PHP_SELF con la nuova funzione.
è giusto che i valori GET non siano riportati in PHP_SELF, perchè non si possono fare assunzioni su dove verrà usata la variabile. Per esempio se usi PHP_SELF in un form che ha method="get" i valori get passati in PHP_SELF saranno completamente scartati al momento dell'invio del form. Devi riportarli tu, solo quando ti servono.
Prova a vedere se netsons implementa qualche variabile equivalente in $_SERVER. Ma dipendere dall'implementazione specifica di un host non è una cosa bellissima.
12/11/2012 16:52:26
13/11/2012 12:05:07
dipende dalla struttura del tuo sito. Io uso sempre URL relativi alla root, quindi il path mi serve o uso PHP_SELF direttamente senza rielaborarla.
Se tu usi URL relativi alla tua pagina specifica dovrai metterti a rielaborare ogni volta PHP_SELF in base alla destinazione prescelta.
Se usi la riscrittura degli url...boh dipende XD
13/11/2012 17:46:48
13/11/2012 18:58:33
Non sono sicuro del perchè ti serva solo il basename nel campo action dei form....ma se dici che ti funziona ok
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Planethos GdR: Una nuova profezia
Metin2: Informazioni sul server migliorate
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
Age of Crystals: Rallentamenti estivi
dbzgdr ha risposto alla discussione: Dragon Ball Z Gdr
Titan Revenge: Calendario eventi fino a fine mese online!
CRSED: F.O.A.D. → Brutale sparatutto MMO in cui vince l'ultimo giocatore che resta in vita nell'arena! Ogni giocatore sarà accompagnato da armi realistiche e magie!
Enlisted: Modifiche al sistema di aggiornamento
pyro72 ha aperto un annuncio di ricerca: World Without Heroes ricerca Giocatore
World Without Heroes: News GDR: Pubblicazione e Nuovo Inizio
Piume Nere → Inquisizione, Intrigo e Soprannaturale: quali torbidi e oscuri segreti si celano tra le nebbie di Laddington? Iscriviti per scoprirlo!
I dati del generatore di rank sono stati aggiornati!
Il gestore di Nexi Generation ha risposto alla recensione di deanna
Brightest Star: Che (dis)grazia questo campeggio!
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
eXtremelot non chiude! - Intervista esclusiva ai gestori di eXtremelot sul futuro del primo play by chat che di certo non chiude!
SID - Recensione del gioco di ruolo online fantasy SID... le terre al di là del mare
Grafica nei Gdr - Dalla programmazione alla grafica: quali strumenti per il vostro Gdr play by chat?
Giochi Fantasy d'autore - Lista completa dei giochi di ruolo online fantasy d'autore
PokèMaster Land - Intervista al gestore di PokèMaster Land.. il play by chat sui Pokèmon!
Guerra dei Browser - Scopriamo assieme i browser più utilizzati dai giocatori di ruolo online che visitano il portale!