我收到了以下代码:
<?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");
}
&GT;
让我们假设我去了&gt; www.mywebsite.co.il/example.php?id=1&vote=1 在第一次&gt;它将设置第一个cookie。 在第二次&gt;它将设置第二个cookie。 在第三次&gt;什么都不会发生
这是应该如何运作的。
但如果我去&gt; www.mywebsite.co.il?/example.php?id=1&vote=2(在我访问www.mywebsite.co.il/example.php?id=1&vote=1之后) 它会再次设置第一个cookie。
如果我要去&gt; www.mywebsite.co.il?/example.php?id=1&vote=3(在我访问www.mywebsite.co.il/example.php?id=1&vote=1之后) 它会再次设置第一个cookie。
依旧......
无论投票结果如何,我还需要做什么,只要它的ID相同,cookie就会一样?
(这不是完整的代码,你不需要完整的代码来理解问题或解决它。)
谢谢!
答案 0 :(得分:1)
无论如何,请检查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中,你必须寻找你的域名(而不是你的子域名)。在chrome,ctrl + I,存储选项卡。
您可以在服务器上试用此代码并回来告诉我们它是否有效,它可能来自您的unicode域名。
我已将代码更改为(相同的网址):
<?
$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;
}
如果您尝试:
bool(true) 1st cookie named viewz1 set to : viewed 1
bool(true) 2nd cookie named votez1. is set to :voted 3