2015-09-30 3 views
0

Я пытаюсь создать html-форму, которая получит имя пользователя, имя и адрес электронной почты, а php сохранит имя пользователя в качестве файла cookie. Затем сохраните имя пользователя, имя и адрес электронной почты.PHP Cookie Issue

Затем, когда они заходят в форму, форма будет приветствовать пользователя с информацией о файлах 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, и т.д ...) устанавливаются РАЗ, когда скрипт запускается впервые, а затем никогда не изменяются снова PHP.

Независимо от того, какие файлы cookie вы создаете с помощью setcookie(), появится только в $ _COOKIE на NEXT выполнение сценария.

Единственным исключением из этого является $_SESSION, который заселяется после того, как вызывается session_start().