webForumDet fria alternativet

senaste del av cookie syns ej

5 svar · 225 visningar · startad av Jonny Puma

Jonny PumaMedlem sedan jan. 200420 inlägg
#1

Hej allihop!

Har gjort en sida där besökare kan spara en egen länksamling i en cookie. Men när man lägger till en länk så måste man sen uppdatera sidan för att den nya länken ska synas i listan. Detta även fast jag inkluderar länksamlingen efter att den nya länken sparats till cookien.

Ni kanske förstår bättre efter följande kod:

lista.php

<?php
if ( $_GET[ 'action' ] == "save_link" && $_GET["id"] != "" & $_GET["namn"] != "" ){
    setcookie ("link[" .$_GET["id"]. "]", $_GET["namn"] ,time()+180);
}
?>

<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" href="../CSS/style.css" type="text/css" />
</head>
<body>

<?php
require ("meny.php");
require ("top.php");

.. .. ..
//databaskoppling, hämtar lite värden m.m.
.. .. .. 

print "<a href=\"lista.php?id=" .$_GET["id"]. "&action=save_link&namn=$rad[namn]\">Spara länk</a><br />";

osv. ... .. .

meny.php

 
<div id="meny">
<h1><img src="../Bilder/menysctop.gif" height="10px" width="10px" /> Mina genv&auml;gar</h1>

<?php
if (isset($_COOKIE['link'])) {
	 foreach ($_COOKIE['link'] as $name => $value) {
	 		 //if ($value != "")
			 echo "<a href=\"visaLank.php?id=$name\">&#187 $value</a>";
       //echo "$name : $value <br />\n";
   }

	//print "Genvägar finns.";
}
else{
	print "Inga genv&auml;gar sparade.";
}

?>

.. .. .. .. osv.

</div>

Fast sidan laddas om när man klickar för att spara en länk och att sparandet till cookien ligger först i koden så måste man alltså ändå uppdatera för att den nya länken ska finnas med i menyn.

Tacksam för svar!
//Puma

Jonny PumaMedlem sedan jan. 200420 inlägg
#2

Det kanske funkar bättre om jag länkar till en funktion som sparar till cookien istället för att sidan laddas om? Och att sidan sen uppdateras sist i funktionen?

MatteMedlem sedan aug. 20002 975 inlägg
#3

När du kör setcookie() sätts en header som säger till webbläsaren att sätta en cookie, men den lägger inget i $_COKIE-arrayen.

Nästa gång sidan laddas om kollas om där finns en cookie, och om det finns läggs den i cookie-arrayen.

Det är alltså webbläsaren som i sitt anrop till sidan/skriptet som skickar med att den har en cookie, därför är det först vid nästa anrop det finns något i cookie-arrayen.

Jonny PumaMedlem sedan jan. 200420 inlägg
#4

Tack för det snabba svaret!

Så min idé i 2:a inlägget skulle fungera bättre alltså?

MatteMedlem sedan aug. 20002 975 inlägg
#5

Sätt cookien och ladda om sidan.
Men låt inte dettavara beroende av om cookien finns eller ej, annars kan du fastna i en evighetsloop om webbläsaren inte tillåter cookies.

Jonny PumaMedlem sedan jan. 200420 inlägg
#6

Då ska jag testa det.
Återigen tack för svaren.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)