设置cookie与php和做动作与javascript(隐藏)在同一页面加载


Set cookie with php and do action with javascript (hide) at same page load

我想要的:当有人访问我的页面'page21'在referer设置一个cookie。如果这个cookie已经存在或者现在设置了,我想隐藏特定的类(.hide_phone)

<?php 
if(!isset($_COOKIE["Numar"]))
{
if(isset($_SERVER['HTTP_REFERER'])) {
$referer=$_SERVER["HTTP_REFERER"];      
if (strpos($referer,'page21') !== false) {
    setcookie("Numar","1", time()+3600*24, "/", "mywebsite.com");
}}} 
?>
<?php if(isset($_COOKIE["Numar"])) :?>
<script type="text/javascript">
$(document).ready(function(){
   $('.hide_phone').hide();
 });
</script>
<?php endif;?>

为什么不工作?我设置cookie,但在一次刷新后,javascript开始工作并隐藏该类。我想在一个页面加载中完成这个。

  1. 如果我把这段代码在头,它只工作在第一页,访问者来自。为什么不工作在其他页面,如果cookie存在。对不起,我的英语不好。

您不能"在一个页面加载中完成此操作",因为setcookie发送的cookie只能在下一次页面加载时访问。参见手册。

更新:

虽然你不能在服务器端做这样的事情,你可以在客户端通过document.cookie(在纯JS中)或jquery读取cookie的写入值。饼干插件