Печенье в субдомене не работает

Я получил следующий код:

<?php $id = $_GET['id']; $vote = $_GET['vote']; $month = 2592000 + time(); $cookie = "votez" . $id; $cookiez = "viewz" . $id; if(isset($_COOKIE[$cookiez])) { if(!isset($_COOKIE[$cookie])) { setcookie($cookie, "voted", $month, '/', ".mywebsite.co.il"); } } else { setcookie($cookiez, "viewed", $month, '/', ".mywebsite.co.il"); } 

?>

предположим, что я впервые перейду в> www.mywebsite.co.il/example.php?id=1&vote=1> он установит первый файл cookie. во второй раз> он установит второй файл cookie. в третий раз> ничего не произойдет

так оно и должно работать.

но если я перейду в> www.mywebsite.co.il?/example.php?id=1&vote=2 (после того, как я был на сайте www.mywebsite.co.il/example.php?id=1&vote=1), он установит первый cookie снова.

если я перейду на сайт www.mywebsite.co.il?/example.php?id=1&vote=3 (после того, как я был на сайте www.mywebsite.co.il/example.php?id=1&vote=1), он установит первый cookie снова.

и так далее..

что мне нужно сделать, независимо от того, какой голос равен, до тех пор, пока его одинаковый идентификатор, cookie будет таким же?

(это не полный код, и вам не нужен полный код, чтобы понять проблему или решить ее).

благодаря!.

Solutions Collecting From Web of "Печенье в субдомене не работает"

В любом случае, проверьте это http://labs.shikiryu.com/test-cookie.php :

 <? $id = "1"; $vote = "2"; $month = 2592000 + time(); $cookie = "votez" . $id; $cookiez = "viewz" . $id; if(isset($_COOKIE["$cookiez"])) { if(!isset($_COOKIE["$cookie"])) { var_dump(setcookie("$cookie", "voted", $month, '/', ".shikiryu.com")); echo "2nd cookie set :".$month; } } else { var_dump(setcookie("$cookiez", "viewed", $month, "/", ".shikiryu.com")); echo "1st cookie set :".$month; } 

Как вы проверяете свой файл cookie? потому что, например, в firefox, вы должны искать свой домен (а не ваш поддомен). В хром, ctrl + I, вкладка хранилища.

Можете ли вы попробовать этот код на своем сервере и вернуться, чтобы сообщить нам, работает ли он, это может быть связано с вашим доменным именем юникода.


Я изменил код на (тот же url):

 <? $id = $_GET['id']; $vote = $_GET['vote']; $month = 2592000 + time(); $cookie = "votez" . $id; $cookiez = "viewz" . $id; if(isset($_COOKIE["$cookiez"])) { if(!isset($_COOKIE["$cookie"])) { var_dump(setcookie("$cookie", "voted ".$vote, $month, '/', ".shikiryu.com")); echo "2nd cookie named ".$cookie.". is set to :voted ".$vote; } } else { var_dump(setcookie("$cookiez", "viewed ".$vote, $month, "/", ".shikiryu.com")); echo "1st cookie named ".$cookiez." set to : viewed ".$vote; } 

Если вы пытаетесь :

  1. http://labs.shikiryu.com/test-cookie.php?id=1&vote=1 у вас будет bool(true) 1st cookie named viewz1 set to : viewed 1
  2. http://labs.shikiryu.com/test-cookie.php?id=1&vote=3 => bool(true) 2nd cookie named votez1. is set to :voted 3 bool(true) 2nd cookie named votez1. is set to :voted 3
  3. http://labs.shikiryu.com/test-cookie.php?id=1&vote=2 => ничего не будет отображаться, поскольку оба файла cookie установлены.