$_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 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 + Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
losnodo ha risposto alla discussione: Programmatore Offresi!
joeilcondor si è accreditato come gestore di Betsu No Tamashi
Sponsorizzati con noi! → Sponsorizza il tuo gioco su GDR-online! Trova nuovi giocatori fra i migliaia di appassionati che ogni giorno visitano il portale!
Portus: Harry Potter Gioco di Ruolo: DCAO: il vero nemico non è la magia oscura
Apocalypse Requiem: Detroit: Release Nuova Versione
Another Year Of Disaster: A Whole Year of Disaster! 🎉
exv_staff ha aperto un annuncio di ricerca: Exclusive Villa GdR ricerca Giocatore
Hero Wars → Costruisci la tua squadra di eroi leggendari e domina il campo di battaglia! Strategia, tattica e potenza si scontrano in questo RPG ricco di azione!
World of Tanks: Aggiornamento 2.0.1: Linee ridisegnate
Il genere Battaglie Galattiche raggiunge i 400 giochi catalogati!
RAID Shadow Legends: Evento "Febbre del Drop"
frost ha risposto alla discussione: Gioco investigativo e politico
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
I dati del generatore di rank sono stati aggiornati!
Le Cronache di Raja Dunia: Aggiornamento Informazioni Personaggio
Winged Keys Rpg: Gioco Chiuso!
CRSED: F.O.A.D. → Brutale sparatutto MMO in cui vince l'ultimo giocatore che resta in vita! Il giocatore sarà accompagnato da armi realistiche e magie!
Stargate Command - Stargate Command Online, un gioco da gaters presentato da Fantascienza.com
Allineamenti GDR - Scopri i fondamentali allineamenti di gioco nei gdr online
Risorse Mud - Lista dei siti e portali che parlano dei Multi User Dungeon in italiano
Il Regno dei Draghi - Intervista alla gestrice di Il Regno dei Draghi il play by forum delle Cronache del Ghiaccio e del Fuoco
Ricerca staff! - Alcuni utili consigli di Lith su come usare in modo efficace lo strumento di ricerca staff su gdr-online!
Fanta-Trade - Intervista al creatore di Fanta-Trade il primo browser game finanziario completamente sviluppato in Italia
The Brightside - Intervista alla gestione di The Brightside play by chat urban fantasy ambientato nell'america rurale