webForumDet fria alternativet

Cookieproblem

PHP

4 svar · 357 visningar · startad av Jesper2

Medlem sedan dec. 200475 inlägg
Frågan#1

När man har skrivit ett gästboksinlägg i min blog vill jag att namnet och hemsidan ska sparas i en cookie så att användaren inte behöver fylla i det nästa gång. Hur ska jag lösa detta?

Tack på förhand!

Medlem sedan jan. 20059 inlägg
#2

I formuläret kan du göra så här:

<?
if(isset($_COOKIE['hemsida'])){ $hemsida = $_COOKIE['hemsida']; }
if(isset($_COOKIE['namn'])){ $namn = $_COOKIE['namn']; }
?>

<HTML><BODY>
<FORM ACTION="add_inlagg.php" METHOD=POST>
Namn: <INPUT TYPE=TEXT NAME="namn" VALUE="<?=$namn?>"><BR>
Hemsida: <INPUT TYPE=TEXT NAME="hemsida" VALUE="<?=$hemsida?>"><BR>
<INPUT TYPE=SUBMIT VALUE="Skriv i gästboken">
</FORM>
</BODY></HTML>

Och i scriptet som lägger in inlägget:

<?
if(!empty($_POST['namn'])){
setcookie("namn", $_POST['namn'], mktime(0,0,0,1,1,2038));
}
if(!empty($_POST['hemsida'])){
setcookie("hemsida", $_POST['hemsida'], mktime(0,0,0,1,1,2038));
}

// Lägg till inlägget i gästboken... 

?>
Medlem sedan dec. 200475 inlägg
#3

project2501x skrev:

I formuläret kan du göra så här:

<?
if(isset($_COOKIE['hemsida'])){ $hemsida = $_COOKIE['hemsida']; }
if(isset($_COOKIE['namn'])){ $namn = $_COOKIE['namn']; }
?>

<HTML><BODY>
<FORM ACTION="add_inlagg.php" METHOD=POST>
Namn: <INPUT TYPE=TEXT NAME="namn" VALUE="<?=$namn?>"><BR>
Hemsida: <INPUT TYPE=TEXT NAME="hemsida" VALUE="<?=$hemsida?>"><BR>
<INPUT TYPE=SUBMIT VALUE="Skriv i gästboken">
</FORM>
</BODY></HTML>

Och i scriptet som lägger in inlägget:

<?
if(!empty($_POST['namn'])){
setcookie("namn", $_POST['namn'], mktime(0,0,0,1,1,2038));
}
if(!empty($_POST['hemsida'])){
setcookie("hemsida", $_POST['hemsida'], mktime(0,0,0,1,1,2038));
}

// Lägg till inlägget i gästboken... 

?>

Tack så mycket för svaret, men det fungerar fortfarande inte :/ Är det några inställningar på servern som jag måste göra? T ex tillåtelse att sätta cookies?

Medlem sedan aug. 20002 975 inlägg
#4

Några saker.

setcookie() är en header och måste sättas innan någon output görs till sidan.

Du har inget i $_COOKIE förrän sidan laddas om.

Om du sätter cookien i en underkatalog kommer cookien endast att gälla för denna katalog, och dess underkataloger. Vill du den ska gälla för hela webbplatsen, använd fjärde paramatern.

Medlem sedan dec. 200475 inlägg
#5

Matte skrev:

Några saker.

setcookie() är en header och måste sättas innan någon output görs till sidan.

Du har inget i $_COOKIE förrän sidan laddas om.

Om du sätter cookien i en underkatalog kommer cookien endast att gälla för denna katalog, och dess underkataloger. Vill du den ska gälla för hela webbplatsen, använd fjärde paramatern.

Tack så jättemycket! Det funkar skitfint nu. Jag hade inte en aning om de där sakerna =)

334 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
198 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
194 ms — ändringar (db)