2015-09-30 76 views
0

我正在尝试创建一个html表单,它将获取用户名,名称和电子邮件地址,而php会将用户名存储为cookie。然后,存储用户名,姓名和电子邮件地址。PHP Cookie问题

然后,当他们再次登录表单时,表单会用cookie信息迎接用户。我不确定如何进行,如果有人可以给我建议。谢谢!

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 

    <form action = "userinfo.php" method = "post"> 

     Username:<br> 
     <input type="text" name="username"> 
     <br> 

     Fullname:<br> 
     <input type="text" name="fullname"> 

     <br> Email:<br> 
     <input type="text" name="email"> 
     <br> 
     <input type="submit" value="Submit"> 

    </form> 

</head> 
<body> 

</body> 
</html> 



<?php 

session_start(); 

$cookie_name = "user"; 
$cookie_value = "username"; 
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day 


if (!isset($_COOKIE[$cookie_name])) { 
    echo "Cookie named '" . $cookie_name . "' is not set!"; 
} else { 
    echo "Cookie '" . $cookie_name . "' is set!<br>"; 
    echo "Value is: " . $_COOKIE[$cookie_name]; 
} 

?> 
+0

你有什么问题/错误? – user5173426

+0

问题在哪里? – AbraCadaver

+0

在所有输出之后,您不能使用'session_start()'。您必须在发送任何输出之前具有该功能 – Machavity

回答

2

PHP超全局($ _ GET,$ _ POST,$ _ SERVER,$ _COOKIE,等...)设置ONCE当脚本首先启动,然后永远不会被PHP再次改变。

无论您使用setcookie()创建的cookies只会出现在$ _COOKIE的下一个脚本执行中。

唯一的例外是$_SESSION,调用session_start()后会填充该值。