2016-02-19 43 views
-1

我試圖在PHP中創建cookie並且不使用會話。這是我如何創建它們:在PHP中創建和打印Cookie

echo 'Successfully registered :)'; 
$name = $_POST['user_name']; 
setcookie("name", $name); 

這是在頁面的底部,一切都完成了。我看到頁面上的回顯行,我也知道$ _POST ['user_name'];包含一個值。所以應該設置cookie。在<body>標籤正下方的同一頁頂部,我有echo $_COOKIE['name'];。當我重新加載頁面時,我沒有看到任何內容,並且它是空白頁面。我可以粘貼整個頁面,但它是〜150行。

+0

啓用正確的PHP錯誤報告,並閱讀['setcookie'](http://php.net/manual/en/function.setcookie.php),_carefully_的手冊。 – CBroe

回答

0

正如你可以在PHP手冊中看到的那樣,在進行任何輸出之前必須調用setcookie()

Btw。這有可能創建一個很好的XSS,你應該真正過濾POST變量,然後將其反映爲cookie內容。

0

cookie與HTTP標頭的其餘部分一起發送,這意味着它需要在任何頁面標記或其他任何內容之前設置。 PHP Cookie Docs

另外,您需要清理任何用戶輸入以防止惡意行爲。從PHP 5.2 filter_var開始可以在這種情況下使用。