2010-04-20 5 views
2

J'essaye de mettre un cookie, je me suis trompé car j'ai une erreur.mettre un cookie en php

Attention: setcookie() attend le paramètre 3 pour être longue, chaîne donnée dans /home/admin/domains/domain.com.au/public_html/setcookie.php à la ligne 6

<?php 
$cookie_name = "test_cookie"; 
$cookie_value = "test_string"; 
$cookie_expire = "time()+86400"; 
$cookie_domain = "localhost"; 
setcookie($cookie_name, $cookis_value, $cookie_expire, "/", $cookie_domain, 0); 
?> 
<HTM> 
<HEAD> 
</HEAD> 
<BODY> 
<h1>cookie mmmmmmm</h1> 
</BODY> 
</HTML> 

Répondre

6

Vous passez la valeur time()+86400 comme une chaîne. C'est parce que vous l'avez entouré de guillemets.

probablement ce que vous vouliez faire:

$cookie_expire = time()+86400; 

Cela entraînera la valeur à évaluer en nombre au lieu d'une chaîne.

+0

travaillé, quand je vérifie mes cokies il n'y en a pas un ensemble? aucune idée de pourquoi cela peut être.Cookies sont enled dans mon navigateur – Jacksta

+1

Vous devez appeler les cookies en action pour cela.Ex: Si vous avez un cookie pour prénom d'un utilisateur, vous devez écrire: echo "$ _COOKIE ['first_nam e '] ";. – ggfan

+0

Vous pouvez le faire pour une autre question. –

2

Les deux conseils que vous avez donnés ci-dessus sont corrects; vous essayiez en fait de passer une chaîne à la fonction setcookie de cette façon.

Juste la baisse « s et vous devriez faire bien.

Soit dit en passant, si cela vous arrive à nouveau pour obtenir dans des situations similaires, essayez d'utiliser la fonction var_dump PHP (... ou un débogueur pour cette question), qui peut vous dire ce que (données et type) une variable contient.Puis vous pouvez repérer quel est le problème exact et vous pouvez revenir en arrière à la source, afin de le réparer rapidement ...