奇怪的cookie行为localhost到服务器 - jquery-cookie

时间:2014-05-06 06:18:54

标签: php html cookies localhost

问题:本地主机中的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中删除了/ domain等,并将其设置为最简单的setcookie('imgName',$photoName,time()+3600);形式,我仍然得到相同的随机字母。有没有什么可以加密实时服务器上的cookie但不打扰本地主机?

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

1 个答案:

答案 0 :(得分:0)

我无法理解这条线的意义

$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 CODE:

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