PDA

Bekijk Volledige Versie : ULR opvangen in variabele



Eduard Bekker
18/07/07, 02:12
Beste mensen,

Heb tevergeefs gezocht binnen de php-sites en in de handleidingen, maar je
weet het toch maar nooit:

Is het mogelijk de volledige URL van een pagina binnen één variabele op te
vangen?

PHP_SELF komt in de richting, maar GET-variabelen worden daarbij niet
onderschept.

http://www.pietsnot.nl/index.php?jan=lui

Wordt dan http://www.pietsnot.nl/index.php

En dat is nou net niet de bedoeling....


--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Rik
18/07/07, 02:12
On Tue, 17 Jul 2007 21:02:59 +0200, Eduard Bekker <e.bekker@layout.nl>
wrote:

> Beste mensen,
>
> Heb tevergeefs gezocht binnen de php-sites en in de handleidingen, maar
> je
> weet het toch maar nooit:
>
> Is het mogelijk de volledige URL van een pagina binnen één variabele op
> te
> vangen?
>
> PHP_SELF komt in de richting, maar GET-variabelen worden daarbij niet
> onderschept.
>
> http://www.pietsnot.nl/index.php?jan=lui
>
> Wordt dan http://www.pietsnot.nl/index.php
>
> En dat is nou net niet de bedoeling....

Dat wordt het natuurlijk niet, aangezien het protocol (http://) en de
server (www.example.com) er niet in staan. Er staat simpelweg
'/index.php', maar dat is in de meeste gevallen natuurlijk voldoende.

Maar om je vraag te beantwoorden: onder Apache kun je in PHP
$_SERVER['REQUEST_URI'] gebruiken. Ook als je eventuele mod_rewrites etc
hebt toegepast zal deze nog het oorspronkelijke request bevatten waarmee
de aanvraag werd gedaan.
--
Rik Wasmus

Eduard Bekker
18/07/07, 02:12
Beste Rik,

Op 17-07-2007 21:12, schreef "Rik" in op.tvmiajqeqnv3q9@metallium,
<luiheidsgoeroe@hotmail.com> het volgende:

> On Tue, 17 Jul 2007 21:02:59 +0200, Eduard Bekker <e.bekker@layout.nl>
> wrote:
>
>> Beste mensen,
>>
>> Heb tevergeefs gezocht binnen de php-sites en in de handleidingen, maar
>> je
>> weet het toch maar nooit:
>>
>> Is het mogelijk de volledige URL van een pagina binnen één variabele op
>> te
>> vangen?
>>
>> PHP_SELF komt in de richting, maar GET-variabelen worden daarbij niet
>> onderschept.
>>
>> http://www.pietsnot.nl/index.php?jan=lui
>>
>> Wordt dan http://www.pietsnot.nl/index.php
>>
>> En dat is nou net niet de bedoeling....
>
> Dat wordt het natuurlijk niet, aangezien het protocol (http://) en de
> server (www.example.com) er niet in staan. Er staat simpelweg
> '/index.php', maar dat is in de meeste gevallen natuurlijk voldoende.

Tja, klopt.


> Maar om je vraag te beantwoorden: onder Apache kun je in PHP
> $_SERVER['REQUEST_URI'] gebruiken. Ook als je eventuele mod_rewrites etc
> hebt toegepast zal deze nog het oorspronkelijke request bevatten waarmee
> de aanvraag werd gedaan.

Dank! Is precies wat ik zocht!

Wat mod_rewrites zijn weet ik niet (zijn dat die zwarte mannetjes, die ik
's avonds over het plafond zie lopen?). Hier blijk ik toch weer door de mand
te vallen met mijn bij mekaar gelurkte steenkolen-php.

En ik blijf het lastig vinden om via Google en de php-sites de vraag zo
gericht te kunnen stellen, dat het antwoord eruit rolt.

Dus: heel erg bedankt!


--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Rik
18/07/07, 02:12
On Wed, 18 Jul 2007 00:54:53 +0200, Eduard Bekker <e.bekker@layout.nl>
wrote:
>> Maar om je vraag te beantwoorden: onder Apache kun je in PHP
>> $_SERVER['REQUEST_URI'] gebruiken. Ook als je eventuele mod_rewrites etc
>> hebt toegepast zal deze nog het oorspronkelijke request bevatten waarmee
>> de aanvraag werd gedaan.
>
> Dank! Is precies wat ik zocht!
>
> Wat mod_rewrites zijn weet ik niet (zijn dat die zwarte mannetjes, die ik
> 's avonds over het plafond zie lopen?). Hier blijk ik toch weer door de
> mand
> te vallen met mijn bij mekaar gelurkte steenkolen-php.

Hehe.
Om het even kort uit te leggen: een URL heeft niet perse overeen te komen
met welk script het afhandeld. Zo kan bevoorbeeld
www.example.com/downloads/bestand.ext worden afgehandeld door een script
dat in .../scripts/downloads.php staat. In geval van $_SERVER['PHP_SELF']
zou deze ...'/scripts/downloads.php' bevatten, de REQUEST_URI bevat echter
de daadwerkelijk URL waarmee de mensen zijn binnen gekomen.

Dit wordt vaak toegepast om wat 'mooiere' en/of leesbare URLS te maken,
wat ook weer invloed heeft op zoekmachines. Zo kun je zonder problemen
http://www.example.com/pagina/subpagina/subsub/ gebruiken als url, terwijl
het toch volledig wordt afgehandeld door http://www.example.com/index.php,
en je qua code je maar bezig hoeft te houden met 1 enkel 'point-of-entry',
ofwel maar 1 (hoofd)bestand dat de verdere inhoud in elkaar sleutelt.
--
Rik Wasmus