【问题标题】:Weird cookies behavior localhost to server -- jquery-cookie奇怪的 cookie 行为 localhost 到服务器 - jquery-cookie
【发布时间】:2014-06-22 15:02:32
【问题描述】:

问题:cookie 在本地主机上很好,但在服务器上不行,可以访问但值似乎是随机字母

我将图像文件名存储为像这样的cookie

//storing image filepath as cookies
if (isset($_COOKIE['imgName'])) {
  setcookie("imgName", "", time()-3600);
}
$expire=time()+60*60*24*30;
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
$cookie = $_FILES["file"]["name"];
setcookie("imgName", $cookie, $expire,'/',$domain,false);

并且在本地主机中,cookie 设置得很好,例如:hp_1.jpg。但是当我将它上传到服务器时,cookie 被设置为完整的“随机”字母,例如:jhSerZR6i1T952C3bk7vEOGCj8Pz_tBYtuHcgrgj81A 我错过了什么吗?

编辑:我从 cookie 中删除了 / 域等,并将其设置为 setcookie('imgName',$photoName,time()+3600); 的最简单形式,我仍然得到相同的随机字母。有什么东西可以加密实时服务器上的 cookie 但不会打扰 localhost 吗??

最新编辑:所以经过大量测试后,我注意到 javascript 可以获取 php cookie 但以某种方式加密?它或其他东西(加密似乎是错误的,因为它对于某个字符串总是相同的字符串,例如:aaa 将始终生成 qwe(或其他))我通过完全删除 cookie 并使用 php echo 来获得我想要的值来解决这个问题。 =[

【问题讨论】:

    标签: php html cookies localhost


    【解决方案1】:

    我无法理解这句话的意思

    $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;

    你可以直接这样做:

    setcookie('imgName', $_FILES['file']['name'], time()+3600, '/', $_SERVER['HTTP_HOST'], false);

    (我在网上试过你的代码,返回NULL,而这是返回正确的cookie名称)

    编辑(例如):

    PHP 代码:

    if(isset($_POST['submit']))
    {
    $cookie = $_FILES['img']['name'];
    setcookie('myCookie',$cookie,time()+3600,'/');
    foreach ($_COOKIE as $key=>$val)
    {
    echo $key.' is '.$val."<br>\n";
    }
    }
    

    HTML 代码:

    <form action="#" method="post" enctype="multipart/form-data">
    <input type='file' name="img">
    <input type='submit' name="submit" value="GO">
    </form>
    

    【讨论】:

    • 我的代码在本地主机上离线工作,你的代码在本地主机或服务器上不起作用
    • 我不知道您的代码发生了什么,但我确定这是“域”问题。您可以尝试不使用域参数吗?喜欢这个setcookie('imgName',$_FILES['file']['name'],time()+3600,'/');,因为它会自动在你的父域上设置cookie。检查并发布结果。
    • 仍然是相同的随机字母:(,我想到当它在实时服务器而不是本地主机上时可以加密它??
    • 我添加了一个简单的例子,它在在线服务器上对我来说很好用。检查一下。
    • 您的示例在本地主机上离线工作正常,但在服务器上生成相同的随机数
    猜你喜欢
    • 2019-09-01
    • 2014-03-03
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2021-07-21
    • 2012-04-08
    相关资源
    最近更新 更多