PDA

Bekijk Volledige Versie : PHP redirect met cookie



Shenzou
10/09/03, 13:45
Even mijn probleem schetsen. Op een pagina van een site kunne de bezoekers
hun gewenste taalkeuze aanklikken. Deze taalkeuze wordt in een cookie
opgeslagen zodat de volgende keer dat de bezoeker de site bezoekt de
taalkeuzepagina overgeslagen wordt. Met JavaScript heb ik al gevonden hoe ik
dat kan doen maar nu vraag ik mij af of dit ook met PHP te verwezenlijken
is?
Iemand had volgende voorstel geopperd:

<?php If ($_GET['cookie']) {
setcookie ("redirect", $_POST['cookie'], time() +3600*24*31,
"/~submap/", "domein.be", 0);
}

<a href="www.blaat.be/index.php?cookie=blaat">blaat</a><br />

<a href="www.blaat.be/index.php?cookie=bl00b">bl00b</a><br />


Maar dat werkt dus blijbaar niet.
Iemand andere suggesties hoe ik dit kan realizeren?
Alvast bedankt!

Egwin

Daniel Tryba
10/09/03, 18:00
Shenzou <black_onion@nospamhotmail.com> wrote:
> <?php If ($_GET['cookie']) {
> setcookie ("redirect", $_POST['cookie'], time() +3600*24*31,
> "/~submap/", "domein.be", 0);
> }
>
> <a href="www.blaat.be/index.php?cookie=blaat">blaat</a><br />
>
> <a href="www.blaat.be/index.php?cookie=bl00b">bl00b</a><br />
>
>
> Maar dat werkt dus blijbaar niet.

Dit werkt perfect zou ik zo denken, het doet echter niet wat je wilt. Ik
neem aan dat je nu een leeg cookie krijgt, wat ook niet echt
verwonderlijk is aangezien $_POST leeg zal zijn.

--

Daniel Tryba

Shenzou
12/09/03, 14:45
>
> Dit werkt perfect zou ik zo denken, het doet echter niet wat je wilt. Ik
> neem aan dat je nu een leeg cookie krijgt, wat ook niet echt
> verwonderlijk is aangezien $_POST leeg zal zijn.
>

Er wordt zelfs geen cookie aangemaakt :o. Waarom?
En waarom zal $_POST leeg zijn?

Daniel Tryba
12/09/03, 17:45
Shenzou <black_onion@nospamhotmail.com> wrote:
>> Dit werkt perfect zou ik zo denken, het doet echter niet wat je wilt. Ik
>> neem aan dat je nu een leeg cookie krijgt, wat ook niet echt
>> verwonderlijk is aangezien $_POST leeg zal zijn.
>>
>
> Er wordt zelfs geen cookie aangemaakt :o. Waarom?

Weet je dat zeker? Staat het ergens online?

> En waarom zal $_POST leeg zijn?

Omdat je de pagina aanroept met:
<a href="www.blaat.be/index.php?cookie=blaat">blaat</a>

--

Daniel Tryba

Shenzou
13/09/03, 14:00
> >>
> >
> > Er wordt zelfs geen cookie aangemaakt :o. Waarom?
>
> Weet je dat zeker? Staat het ergens online?
>

http://test.lgr.be/test2.php, heb mijn Temporary Internet files eerst
leeggemaakt en al de cookies verwijderd maar zoals ik al zei, er wordt geen
cookie aangemaakt.

PHP:

<?php If ($_GET['cookie']) {
setcookie ("redirect", $_POST['cookie'], time() +3600*24*31,"/",
"lgr.be", 0);
}

echo "<a href=\"/en/info_crew_en.php?cookie=bl00b\">bl00b</a><br />";
echo "<a href=\"/en/home_en.php?cookie=blaat\">blaat</a><br />";

echo "<br />cookie value: ".$_COOKIE["redirect"];
?>

> > En waarom zal $_POST leeg zijn?
>
> Omdat je de pagina aanroept met:
> <a href="www.blaat.be/index.php?cookie=blaat">blaat</a>
>

Dus als ik het goed verstaan heb: als ik met een form werk zou er wel een
waarde aan $_POST toegekend worden?
Ik wil echter gebruik maken van links maar hoe kan ik dan een waarde aan
$_POST toekennen?

Alvast bedankt, Egwin

Daniel Tryba
13/09/03, 14:45
Shenzou <black_onion@nospamhotmail.com> wrote:
> http://test.lgr.be/test2.php, heb mijn Temporary Internet files eerst
> leeggemaakt en al de cookies verwijderd maar zoals ik al zei, er wordt geen
> cookie aangemaakt.
>
> PHP:
>
> <?php If ($_GET['cookie']) {
> setcookie ("redirect", $_POST['cookie'], time() +3600*24*31,"/",
> "lgr.be", 0);
> }
>
> echo "<a href=\"/en/info_crew_en.php?cookie=bl00b\">bl00b</a><br />";
> echo "<a href=\"/en/home_en.php?cookie=blaat\">blaat</a><br />";
>
> echo "<br />cookie value: ".$_COOKIE["redirect"];
> ?>

En de warning die je script oplevert is je nog niet opgevallen?

$ lynx -source -dump http://test.lgr.be/test2.php?cookie=blaat

<br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /opt/www/renckensj/web/test.lgr.be/test2.php:2) in <b>/opt/www/renckensj/web/test.lgr.be/test2.php</b> on line <b>3</b><br />
<a href="/en/info_crew_en.php?cookie=bl00b">bl00b</a><br /><a href="/en/home_en.php?cookie=blaat">blaat</a><br /><br />cookie value:
$

Lees http://nl3.php.net/manual/en/features.cookies.php
Dit is een FAQ. Overigens staat er onder Common Pitfalls nog wel twee
opmerkingen die op jou code van toepassing is
(http://nl3.php.net/manual/en/function.setcookie.php).

>> > En waarom zal $_POST leeg zijn?
>>
>> Omdat je de pagina aanroept met:
>> <a href="www.blaat.be/index.php?cookie=blaat">blaat</a>
>>
>
> Dus als ik het goed verstaan heb: als ik met een form werk zou er wel een
> waarde aan $_POST toegekend worden?
> Ik wil echter gebruik maken van links maar hoe kan ik dan een waarde aan
> $_POST toekennen?

Niet, tenzij je je toevlugt tot javascript zoekt.

--

Daniel Tryba

Shenzou
13/09/03, 16:30
>
> En de warning die je script oplevert is je nog niet opgevallen?
>

Vreemd vreemd, ik krijg totaal geen warning te zien en zelfs met ob_start()
ervoor wordt er nog geen koekje geschreven.
Hoedanook bedankt voor al de info!

Daniel Tryba
13/09/03, 17:00
Shenzou <black_onion@nospamhotmail.com> wrote:
>> En de warning die je script oplevert is je nog niet opgevallen?
>>
>
> Vreemd vreemd, ik krijg totaal geen warning te zien en zelfs met ob_start()
> ervoor wordt er nog geen koekje geschreven.
> Hoedanook bedankt voor al de info!

Lees de setcookie manual *nog eens* _heel goed_ door. Met name wat
betreft het deleten van cookies. Schaf dan eens zinnige tools aan waarmee
je kan controleren wat er nu *daadwerkelijk* gebeurd.

BTW
$ lynx -head -dump http://test.lgr.be/test2.php?cookie=blaat
HTTP/1.1 200 OK
Date: Sat, 13 Sep 2003 14:51:28 GMT
Server: Apache
X-Powered-By: PHP/4.3.1
Set-Cookie: redirect=deleted; expires=Fri, 13-Sep-2002 14:51:27 GMT; path=/; do
main=lgr.be
Connection: close
Content-Type: text/html

$

--

Daniel Tryba

Shenzou
13/09/03, 22:15
>
> Lees de setcookie manual *nog eens* _heel goed_ door. Met name wat
> betreft het deleten van cookies. Schaf dan eens zinnige tools aan waarmee
> je kan controleren wat er nu *daadwerkelijk* gebeurd.

En welke zijn deze zinnige tools dan?

Daniel Tryba
15/09/03, 14:45
Shenzou <black_onion@nospamhotmail.com> wrote:
>> Lees de setcookie manual *nog eens* _heel goed_ door. Met name wat
>> betreft het deleten van cookies. Schaf dan eens zinnige tools aan waarmee
>> je kan controleren wat er nu *daadwerkelijk* gebeurd.
>
> En welke zijn deze zinnige tools dan?

Ik heb pas 2 keer lynx gebruikt om iets te laten zien :)
Andere handige tools zijn bv tcpdump/(t)ethereal...

--

Daniel Tryba

Marcus
15/09/03, 21:30
Shenzou wrote:
[knip demo met lynx]
>> Lees de setcookie manual *nog eens* _heel goed_ door. Met name wat
>> betreft het deleten van cookies. Schaf dan eens zinnige tools aan waarmee
>> je kan controleren wat er nu *daadwerkelijk* gebeurd.
>
> En welke zijn deze zinnige tools dan?

De tools die Daniel gebruikt misschien? Zoals dus lynx?

Mark