//如果登录正常,那么我们添加一个cookie
$_POST['user_name'] = stripslashes($_POST['user_name']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['user_name'], $hour);
setcookie(Key_my_site, $_POST['password'], $hour);
这是设置Cookie的正确方法吗?它导致我严重的重定向错误。见这里:PHP Redirect problem with subdomain
答案 0 :(得分:5)
不,需要引用字符串(使用error_reporting(E_ALL);
来获取有关不带引号的字符串等不良内容的警告。)
setcookie('ID_my_site', $_POST['user_name'], $hour);
setcookie('Key_my_site', $_POST['password'], $hour);
除此之外,如果您必须将stripslashes()
应用于您的GPC数据,那么您的服务器配置非常糟糕。应禁用magic_quotes_gpc
。此外,如果get_magic_quotes_gpc()
为真,则仅使用stripslashes。否则,您不得在GPC数据上使用stripslashes。
此外,将明文密码存储在Cookie中是一件非常糟糕的事情!虽然浏览器通常会加密存储的密码,但Cookie不会加密。
答案 1 :(得分:1)
另外,请记住,如果您的脚本已向浏览器输出,则设置cookie将不起作用。因此,如果您从PHP代码行收到警告,则不会设置cookie。以下行可以轻松生成警告:
$_POST['user_name'] = stripslashes($_POST['user_name']);
确保检查$ _POST数组中是否存在密钥。
if (array_key_exists('user_name', $_POST))