任何人都可以告诉我为什么这不起作用:
if (isset($_COOKIE['thisPageRated'])) {
die();
} else {
$pageCookieSet = substr(get_permalink(), strlen(home_url('/'))); //use wordpress function to get the current page and then we slice off the domain
$expire = time()+3600; //expires in a hour
$value = 'set'; //value i'm giving the cookie
$name = 'thisPageRated'; //name of the cookie
setcookie($name, $value, $expire, $pageCookieSet);
//do some stuff
}
我想在每页的基础上设置一个Cookie,因为我试图阻止人们对页面进行一次评级。但它似乎出于某种原因为整个网站设置了它。路径正如预期的那样出现。
答案 0 :(得分:0)
首先在每个页面添加一个新的cookie在我看来不是一个好主意,因为没有人喜欢溢出cookie。
其次,您可以做的是创建一个带有分隔符的页面视图列表的cookie,例如:
您的用户已使用ID 5,7和11为该页面评分。
$pageCookieSet = substr(get_permalink(), strlen(home_url('/'))); //use wordpress function to get the current page and then we slice off the domain
$expire = time()+3600; //expires in a hour
$value = '5'; //value i'm giving the cookie
$name = 'PagesRated'; //name of the cookie
setcookie($name, $value, $expire, $pageCookieSet);
所以我们在这里创建时注意到第5页已被评级。
之后你只需要更新这个cookie的值。
$_COOKIE['pagesRated'] = $_COOKIE['pagesRated'].'###'.$otherPageValue;
$ otherPageValue在这里是第二页的ID
在这里,我们更新了我们的cookie,现在它将返回:
5 ### 7
之后,您只需使用分隔符###
解析cookie的值$arrayPagesRated = explode('###',$_COOKIE['pagesRated');
此行将创建一个数组,其中所有页面的ID均为:
$arrayPagesRated[0] = 5;
$arrayPagesRated[1] = 7;
现在快速使用您的页面进行in_array检查哪些页面已经被评级并且可以解决这个问题