Печенье в поддомене не работает - PullRequest
1 голос
/ 24 ноября 2010

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

<?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 & голос = 3 (после того, как я был на www.mywebsite.co.il/example.php?id=1&vote=1) он снова установит первый файл cookie.

ии так далее.

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

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

спасибо!.

1 Ответ

1 голос
/ 24 ноября 2010

В любом случае, проверьте это 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;
}

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

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


Я изменил код (тот же 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
  3. http://labs.shikiryu.com/test-cookie.php?id=1&vote=2 => не будет ничего отображать, так как оба куки установлены.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...