[php] redirect + cookie wissen?

Pagina: 1
Acties:
  • 135 views sinds 30-01-2008
  • Reageer

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
if(!isset($uri)) die();

setcookie ("sessie", "", time() - 3600);

header("location: $uri");
header("Refresh: 1;URL=$uri");
header("HTTP/1.0 302 RD");
echo "<html><meta http-equiv='refresh' value='1;uri'><body>";
echo "<a href='$uri'>You are being redirected. Please click here</a>";
echo "</body></html>";
?>

De bovenstaande code wist het cookie niet!
heeft iemand een flauw idee wat daarvan de oorzaak is?

Localhost, sweet localhost


Verwijderd

Waar echo-ed hij de cookie..? Misschien cached hij (de browser) de pagina wel..

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
caching staat uit... :(

Localhost, sweet localhost


Verwijderd

PHP:
1
2
3
<?
setcookie("sessie","",time()-36000,"/",.domein.nl,1);
?>

en zo ? (dus met de hele info erin) :?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
setcookie("sessie","",time()-36000,"/",'.blaaet.nl',1);      

echo $HTTP_COOKIE_VARS["sessie"];
echo '</b>';

if(!isset($uri)) die();


//header("location: $uri");
//header("Refresh: 1;URL=$uri");
//header("HTTP/1.0 302 RD");
echo "<html><meta http-equiv='refresh' value='1;uri'><body>";
echo "<a href='$uri'>You are being redirected. Please click here</a>";
echo "</body></html>";
?>

Als je het bovenstaand script zou refreshen, moet op den duur toch het koekje gewist zijn? Snapt iemand waarom dat toch niet het geval is?
Chache staat nog steeds uit.

(voor de wijsneuzen onder ons: blaaet.nl is niet het echte domein!)

Localhost, sweet localhost


Verwijderd

geef anders ook even de setcookie() waarmee je de cookie set.

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
in bestand /sh1/bag.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
function makeSessie() {
   setcookie("sessie", "");
   global $sessie, $action;
   $random = md5 (uniqid (rand()));
   $sessie = substr ("$random", 0, 22);
   $query = "insert into `order` (Sessie) values ('$sessie')";
   mysql_query($query) or die(mysql_error());
   setcookie("sessie", $sessie);
}
?>

Hier wordt mijn cookie geset...

Localhost, sweet localhost


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

setcookie("sessie", "");
geen tijd geen domein geen inhoud

Doet iets met Cloud (MS/IBM)


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Op dinsdag 08 januari 2002 12:49 schreef D2k het volgende:
setcookie("sessie", "");
geen tijd geen domein geen inhoud
Bedankt voor deze opmerking... maar wil je ook vertellen wat je er mee bedoelt?

Localhost, sweet localhost


  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op dinsdag 08 januari 2002 12:57 schreef kvdveer het volgende:

[..]

Bedankt voor deze opmerking... maar wil je ook vertellen wat je er mee bedoelt?
staat er toch onder?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op dinsdag 08 januari 2002 13:01 schreef razor-x het volgende:

[..]

staat er toch onder?
Niet zo aangebrand..
Ze bedoelen dat je een leeg cookie moet setten..

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Er staat onder dat daar geen domein en geen inhoud in zit. Dat zie ik zelf ook wel. Die parameters zijn ook niet vereist.
Bovendien zet ik drie regels later het koekje nog een keer. Die keer MET inhoud.
(die eerste regel heb ik ondertussen verwijderd. Geen resultaat)

Ik kan ook wel zeggen dat jou post 4 woorden bevat, maar als ik er niet bij zeg wat de relevantie daarvan is voor het geheel, heb je er weinig aan.

Het probleem is dus dat de code uit mijn eerste post het koekje niet wist, terwijl 'ie dat wel zou moeten doen. De code waar jij op reageerde was de code die het koekje sette. Die code werkt gewoon en heeft dus (denk ik) geen correctie nodig.
(als je had gezegd "Setcookie(sessie,waarde) moet je deleten met (setkookie(sessie,)" dan had ik gereageerd met 'dat werkt ook niet')

Localhost, sweet localhost


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

lama
razor-x is ff bezig met testen voor je

Doet iets met Cloud (MS/IBM)


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Op dinsdag 08 januari 2002 13:07 schreef wasigh het volgende:

[..]

Niet zo aangebrand..
Ze bedoelen dat je een leeg cookie moet setten..
HUH???? :? :? hebben jullie mijn vraag überhaupt gelezen??? DAT DOE IK!!!.
(sorry ik begin wat geirriteerd te raken. er word hier af en toe gereageerd alsof ik een RTFM vraag heb gesteld...)

Localhost, sweet localhost


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
</ot>
Op dinsdag 08 januari 2002 13:10 schreef D2k het volgende:

[..]

dat kan niet werken
je mist namelijk toch 1 essentieel iets. de tijd
Leg uit? hij set het koekie toch? Ik wil dat het koekje geldig blijft totdat de browser gesloten wordt, en niet eerder verloopt. Dat effect verwijder ik door het koekje een explires mee te geven?
Of snap ik nou niet wat jij begrijpt?

Localhost, sweet localhost


  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Bij het setten stel je geen expire tijd in
Mischien moet je dat wel doen ?
php.net "Cookies must be deleted with the same parameters as they were set with."

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
in bestand1: setcookie("sessie","123456")
in bestand2 (redirect): setcookie("sessie","")

Wist het koekje niet...

Ik ga het nog even met tijd proberen...

Localhost, sweet localhost


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
bestand 1: setcookie("sessie", $sessie,time()+36000);
bestand 2: setcookie("sessie","",time()-36000);

Wist het koekje niet.

nog meer suggesties?

Localhost, sweet localhost


  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
heb het getest :

cookie_show.php
PHP:
1
2
3
<?
echo "$TestCookie";
?>

cookie_set.php
PHP:
1
2
3
<?
setcookie ("TestCookie", "Test Value");
?>

cookie_unset.php
PHP:
1
2
3
<?
setcookie ("TestCookie", "", time() - 3600);
?>

Hier werkt dit wel ?

Probeer het anders eens zonder die redirect?
Cookies will not become visible until the next loading of a page that the cookie should be visible for. dit wist je wel maar, mischien heeft het toch iets met die redirect temaken?

Verwijderd

PHP:
1
2
3
4
5
<?
//bestand 1: 
setcookie("sessie", $sessie,time()+36000,"/",".domein.nl",0);
header("location: page_A.php");
?>


PHP:
1
2
3
4
5
6
<?
//bestand 2: 

setcookie("sessie","",time()-36001,"/",".domein.nl",0);      
header("location: page_B.php");
?>

zoiets wel :?

in setcookie / bijvoorbeeld vervangen door /~user en of eventueel subdomein.domein.nl

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
test.php
PHP:
1
2
3
<?
setcookie("test","test",time()+36000);
?>

test1.php
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$redirect="test2.php";
header("location: $redirect");
header("Refresh: 1;URL=$redirect");
header("HTTP/1.0 302 RD");
setcookie("test","",time()-36000);
echo "<html><meta http-equiv='refresh' value='1;index.php'><body>";
echo "<a href='$redirect'>You are being redirected. Please click here</a>";
echo "</body></html>";
?>

test2.php
PHP:
1
2
3
<?
print_r($HTTP_COOKIE_VARS);
?>

Resultaat: koekje wordt niet gewist. als ik de header-regels uit test1.php weghaal dan doet 'ie het wel.

Localhost, sweet localhost


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
fout gevonden...

als er een HTTP/1.0 302 regel word verzonden in de header, dan vervangt IIS de hele response door een standaardbericht. dus ook mijn cookie-opdracht.
Ik weet niet wat apache doet...
Oplossing:

header("HTTP/1.0 302 RD");
weghalen..

Localhost, sweet localhost


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op dinsdag 08 januari 2002 15:25 schreef kvdveer het volgende:
fout gevonden...

als er een HTTP/1.0 302 regel word verzonden in de header, dan vervangt IIS de hele response door een standaardbericht. dus ook mijn cookie-opdracht.
Ik weet niet wat apache doet...
Oplossing:

header("HTTP/1.0 302 RD");
weghalen..
mm dat had ik niet verwacht, da's wel vaag!
is dat geen setting oid die je kunt setten?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Er zal vast wel een setting zijn oid.
Maar die beheerder heeft zijn IQ ook omgerekend naar de euro. Toen ik hem vroeg om notice uit de error_reporting te halen, heeft hij gelijk error_reporting maar uit gezet... Ik krijg nu dus helemaal geen foutmeldingen.

IIS doet zowieso vreemd met php (onlogische buffering en zo). PHP is geschreven voor apache... dat merk je maar weer.

Localhost, sweet localhost


  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op zich is het ook erg vreemd wat je stuurd aan headers. Je geeft d.m.v. de header('HTTP/1.0 302 Moved Temporarily') en header('Location: ......'); aan dat de pagina tijdelijk ergens anders te vinden is, maar je geeft ook aan dat er een cookie van diezelfde pagina getrashed moet worden. Op zich is dat ook niet erg logisch en is er best in te komen dat sommige web-servers daar geen rekening mee houden.

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Het feit dat ik expliciet een aangepaste header geef, icm een aangepaste body, moet die webserver toch wel overtuigen dat ik iets specifieks wil doen...

Hij doet het trouwens niet op de 302 Found, maar op de location:.
Dat laatste is bijzonder vreemd, want location is toch een veelgebruikte methode om te redirecten...
Ik gebruik nu een refresh...

Localhost, sweet localhost

Pagina: 1