$_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
Metin2: Server Boost Yohara – Dettagli e FAQ
Sea of Conquest: Ci dai una mano ai #PocketGamer Awards 2024?
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
goldaries ha recensito Games of Thrones Winter is Coming
spike92 ha recensito Il Grande Blu
World of Warship: Aggiornamento 13.11: anteprima
gdr-online.com ha risposto alla discussione: Parere su BrowserGame
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!
W40K Dathyar: Specializzazioni
NosTale: Ora nel NosMall: dolcissimi mini-pet
DarkOrbit: Aggiorna la scatola dell'Apocalisse!
I dati del generatore di rank sono stati aggiornati!
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
aik ha aperto una nuova discussione: Parere su BrowserGame
eXtremelot: La Bussola dei Cartografi di Lot
Dallas Black Gold: [Trama] JFK Memorial
Hero Wars: Artefatti dei Titani!
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
SiteCreationAvilion - Scarica SiteCreationAvilion e crea facilmente un sito web per la tua gilda o il tuo clan!
Amazing 40s - Intervista alla gestrice di Amazing 40s il play by chat ambientato negli anni 40!
Vademecum GDR - Utile vademecum sugli aspetti principali del gioco di ruolo online
Giochi Pokémon - Lista completa dei giochi di ruolo online ambientati nel mondo dei Pokémon
Esports - eSports: sempre al top secondo le ultime rilevazioni!
Angels City - Intervista al gestore del gioco di ruolo via chat erotico Angels City