Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php setcookie()在internet explorer或safari中不工作_Php_Internet Explorer_Cookies_Safari_Setcookie - Fatal编程技术网

Php setcookie()在internet explorer或safari中不工作

Php setcookie()在internet explorer或safari中不工作,php,internet-explorer,cookies,safari,setcookie,Php,Internet Explorer,Cookies,Safari,Setcookie,我有以下代码: setcookie('username', $email, false, 'affiliates/', 'www.mydomain.com'); 它在IE或Safari中不起作用。然后我把它改成: setcookie('username', $email, time()+60*60*24, 'affiliates/', 'www.mydomain.com'); 它开始工作了。现在,两天后,它又不起作用了。我想我没有改变什么。正在另一个文件中检查cookie的设置,代码如下:

我有以下代码:

setcookie('username', $email, false, 'affiliates/', 'www.mydomain.com');
它在IE或Safari中不起作用。然后我把它改成:

setcookie('username', $email, time()+60*60*24, 'affiliates/', 'www.mydomain.com');
它开始工作了。现在,两天后,它又不起作用了。我想我没有改变什么。正在另一个文件中检查cookie的设置,代码如下:

if( isset($_COOKIE['username']) ) {
    ...
}
else {
    print( "<meta HTTP-EQUIV='REFRESH' content='0; url=index.html'>" );
    exit();
}

但仅适用于本地主机版本。

您确定在所有其他输出之前有setcookie吗?不能在任何类似文本或html之后设置标题。也许你需要把你头顶上的空间移走
此外,必须从相同的域和路径设置和使用cookie

在cookie中设置密码是一个糟糕的主意,因为这意味着每次请求都会来回传输密码,大大提高了密码被拦截的机会。如今,逆转MD5哈希是可行的。虽然您可能对cookie有问题,但您可能希望返回并为您试图解决的更大问题考虑更好的解决方案。我想您是对的,我只需要设置用户名cookie。然后用户可以更改用户名并以其他人的身份登录。他们仍然需要正确的密码。cookie的唯一用途是防止某人直接键入其他人主页的URL。是的,但他们使用会话和/或其他随机不透明令牌,这些令牌可能会在服务器端过期。众所周知的用户名并不是一个安全的秘密。“此外,cookie必须从相同的域和路径设置和使用。”cookie在mydomain.com/signin.php中设置,并在mydomain.com/affiliates/homepage.php中检查。这就是为什么我将路径设置为“附属机构/”。正确吗?当路径属性的值不是请求URI的前缀时,将拒绝Cookie。没有小路它能用吗?是的。我把“附属公司/”改为“/”,现在它似乎可以工作了。
setcookie('username', $email, time()+60*60*24, 'affiliates/', null);