2011-03-20 94 views
0

//如果登录OK,然后我们添加一个cookie这是设置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

回答

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()为真,则只能使用反斜杠。否则,您不得在GPC数据上使用反斜杠。

此外,在Cookie中存储明文密码是极其糟糕的东西!虽然浏览器通常会加密存储的密码,但Cookie不会被加密。

+0

嘿,你能详细阐述我需要做些什么来解决重定向和增强cookie过程。 – AAA 2011-03-20 16:17:31

1

另外,请记住,如果您的脚本已完成输出到浏览器,则设置cookie将不起作用。因此,如果您从PHP代码行中收到警告,则不会设置Cookie。以下行可以轻松生成警告:

$_POST['user_name'] = stripslashes($_POST['user_name']); 

确保您检查密钥是否存在于$ _POST数组中。

if (array_key_exists('user_name', $_POST)) 
相关问题