2016-01-06 88 views
0


我与这个cookie的东西战斗有一段时间了,希望你可以帮助:Cookie不会设置。 (仅在本地主机上)

setcookie("example", "value", time()+3600, "/", ".website-name.com" , false, false); 

我缺少什么?这一行是在set_cookie.php中,所有页面(如index.php)都包含include_once(“set_cookie.php”);.当你访问www.website-name/set_cookie.php时,它工作得很好,但当你将它包含到index.php或其他页面时,它将不起作用。它包含在页面的开头,我不认为这是问题,因为它与本地主机一起工作。我检查了cookies是否设置了,或者使用了铬工具,还有echo()值。这是这行代码,我觉得有什么问题。我不知道它可能是什么。请帮忙:D

在此先感谢!

+5

请注意,setcookie为未来访问该网站设置cookie值,而不是当前页面。所以,如果你设置cookie,然后回显cookie,它将不会被设置。您必须重新加载页面以查看上次访问中设置的值。 – kainaw

回答

0

找到了答案。以防万一遇到同样的问题: one.com(我的网站空间服务)是问题所在。他们在网站的一开始就放置了一些代码,这就是为什么我不能放置cookie。我必须将cookie放在另一个.php文件中,至此我才开始使用ajax。

的jQuery:

$('.cookie_ok').click(function(){ 
 
     $('.cookie').hide(200); 
 
     $.ajax({ 
 
       type: "POST", 
 
       url: "tip.php", 
 
       data:{wert: "ja"}, 
 
       datatype: "html", 
 
       success: function(result){ 
 
        
 
       } 
 
      })  
 
    });

tip.php:

<?php 
 
    
 
    if (isset($_COOKIE['hinweis'])) { 
 
     $hinweis = "nein";  
 
    } else { 
 
     $hinweis = "ja"; 
 
     setcookie("hinweis", "ja", time()+3600*24*50, "/", false, false); 
 
    }  
 
?>

0

你提到的问题是经常发生的时候cookies.php文件被包含在php页面中后,他们做了一些输出(如html标签和标题的回声),但由于setcookie()通过发送标题信息工作,所以无法设置,因为标题不能在任何页面输出后发送。

编辑:

很高兴你发现托管添加一些信息。用ajax很好的解决方案。