2011-03-20 95 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)) 
相關問題