[PHP] Probleem met uitlezen van variabele cookies

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Pronk
  • Registratie: Februari 2002
  • Laatst online: 11-09 21:26
Ik heb een probleem met cookies die moeten worden geplaatst en uitgelezen aan de hand van de GET waarde die aan een de pagina wordt meegegeven.

PHP:
1
2
3
4
5
6
7
<?PHP 
if (!isset($_COOKIE[$_GET['link']]))  
{ 
echo"blabla"; 
setcookie("$_GET[link]", "true", strtotime("tomorrow 0"), "/"); 
} 
?>

Het cookie wordt wel geplaatst. (met de juiste waarde)
Als ik nu nog een keer dezelfde GET waarde aan de pagina mee geef dan zou er geen "blabla" op mijn scherm mogen verschijnen.
Dit gebeurt wel, dus het cookie wordt toch niet goed uitgelezen.

Heeft iemand een idee waarom dit fout gaat?

[ Voor 36% gewijzigd door Pronk op 31-10-2005 15:19 ]

Ja lekker!


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je weet dat je script geen output mag genereren voor het uitvoeren van setcookie() (aangezien cookies in de header meegestuurd worden)?
Verder moet je je wel realiseren dat de meeste browsers een maximum aanhouden van 20 cookies per domein, en dat je daar op deze manier snel aan zit...

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Pronk
  • Registratie: Februari 2002
  • Laatst online: 11-09 21:26
crisp schreef op maandag 31 oktober 2005 @ 15:20:
Je weet dat je script geen output mag genereren voor het uitvoeren van setcookie() (aangezien cookies in de header meegestuurd worden)?
Verder moet je je wel realiseren dat de meeste browsers een maximum aanhouden van 20 cookies per domein, en dat je daar op deze manier snel aan zit...
Ik weet dat er geen output gegenereerd mag worden, dat gebeurt ook niet. Het cookie wordt ook gewoon geplaatst met de juiste waarde. (gechecked via firefox) Er gaat iets mis bij het uitlezen van het cookie. Ik krijg alleen helaas geen foutmeldingen en heb dus ook geen idee wat er fout gaat.

Via dit script gaan er zo'n 6 cookies geplaatst worden, dus dat wordt ook geen probleem.

[ Voor 4% gewijzigd door Pronk op 31-10-2005 15:27 ]

Ja lekker!


Acties:
  • 0 Henk 'm!

Verwijderd

Probeer het zo eens:

PHP:
1
2
3
4
5
6
7
<?PHP 
if (!isset($_COOKIE[$_GET['link']]))  
{ 
//echo"blabla"; // weggehaald; er mag immers geen output zijn voordat een cookie wordt gemaakt
setcookie($_GET['link'], "true", strtotime("tomorrow 0"), "/"); 
} 
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Idd, je zette er gewoon de tekst $_GET[link] in ipv de waarde van die variabele :) Kon je met de syntaxhighlighting wel goed zien, wat voor editor gebruik je?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Onzin; dit werkt gewoon (hoewel het netter kan):
PHP:
1
2
3
4
5
6
7
8
if (!isset($_COOKIE[$_GET['link']]))  
{ 
    setcookie("$_GET[link]", "true", strtotime("tomorrow 0"), "/"); 
}
else
{
    echo "cookie bestaat al";
}

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Pronk
  • Registratie: Februari 2002
  • Laatst online: 11-09 21:26
Verwijderd schreef op maandag 31 oktober 2005 @ 15:30:
Probeer het zo eens:

PHP:
1
2
3
4
5
6
7
<?PHP 
if (!isset($_COOKIE[$_GET['link']]))  
{ 
//echo"blabla"; // weggehaald; er mag immers geen output zijn voordat een cookie wordt gemaakt
setcookie($_GET['link'], "true", strtotime("tomorrow 0"), "/"); 
} 
?>
Ik heb het aangepast, en helaas werkt het nog steeds niet. nogmaals, het cookie wordt nu geplaatst, ook met de juiste waarde. Bij het uitlezen van het cookie lijkt het fout te gaan.

Ja lekker!


Acties:
  • 0 Henk 'm!

  • Pronk
  • Registratie: Februari 2002
  • Laatst online: 11-09 21:26
Ik heb het opgelost! Voor de nieuwsgierigen, er kwam een "." voor in de meegestuurde GET waarde. Het cookie lijkt onmogelijk uit te lezen door die punt.

Ja lekker!

Pagina: 1