[PHP] Vreemd probleem met $_SERVER['PHP_SELF']

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op een website wil ik aan de gebruiker de mogelijkheid bieden om te switchen tussen Nederlands en Engels. Ik kan ze natuurlijk naar de desbetreffende homepage sturen, maar dat is niet echt gebruiksvriendelijk.

Ik heb daarom in de header.php een scriptje gemaakt dat de correcte url vindt en deze omzet naar de andere taal. Header.php wordt geinclude op elke pagina van de website.

Het probleem is dat het 50/50 werkt. Bij de grotere pagina's (bijvoorbeeld de nieuwspagina) waar veel PHP in staat wordt de goede url getoond als ik het volgende gebruik:

print_r($_SERVER['PHP_SELF']);

Echter bij de kleine pagina's die overwegend uit html ipv php bestaat krijg ik continue header.php als zijnde de url. Het verschil tussen de pagina's die wel en niet werken is niet zo heel groot. Pagina's waarbij het wel werkt maken allen (op een gegeven moment, maar niet direct) gebruik van variablen in the URL (bijv: pro.php?mi=1&pi=30&strt=1) en maken verbinding met een database. De overige pagina's doen dat niet.

Ik snap er niks van. Waarom wordt bij de ene pagina wel de juiste pagina weergegeven (inclusief URI etc) en bij de ander helemaal niets..

[ Voor 6% gewijzigd door Verwijderd op 27-02-2007 16:28 ]


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Waarom stuur je dan niet de exacte url op die de gebruiker ook heeft opgevraagd? Dat kan je gewoon doen met
PHP:
1
getenv('HTTP_HOST').getenv('REQUEST_URI')

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Ik begrijp niet helemaal uit je verhaal wat je nou precies doet om die taal te wisselen. Wat ik zelf altijd doe in dit soort gevallen: Ik kijk in header.php of er een GET var in staat om de taal te wisselen, en daarmee worden de juiste vertalingen opgehaald. Redirecten is er niet bij.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mithras > Dit heb ik geprobeerd, maar ook dit geeft url/header.php weer.

MuEr > Ik switch tussen pagina's bijvoorbeeld Engels.php en Nederlands.php. Dit omdat er naast content ook uiterlijke verschillen zijn. De site bestaat daarnaast feitelijk maar uit 5 pagina's dus was dit de eenvoudigste optie.

[ Voor 65% gewijzigd door Verwijderd op 27-02-2007 16:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
En het is weer opgelost.. bah heb twee uur zitten prutsen en zoeken en dan is de oplossing zo simpel :(

Bij de pagina's waarbij het werkte gebruikte ik include(header.php)
Bij de overigen (per ongeluk) include(url/header.php)

Nou ja, in ieder geval weer wat geleerd. Dacht niet dat er verschil in had kunnen zitten.