设置cookie

时间:2013-12-04 11:35:20

标签: php cookies

尝试用PHP学习cookie一切似乎都很好,但它甚至没有设置cookie 这是代码

<?php
    if (isset($_COOKIE['user'])) {
        header('Location: simple.php');    
    } else {
        if (isset($_POST['submit'])) {
            if (isset($_POST['username']) && isset($_POST['password'])) {
                if (isset($_POST['checkbox'])) {
                    $expire = time() + 60 * 60;
                    setcookie('user', $_POST['username'], $expire);
                } else {
                    header('Location: simple.php');
                }
            } else {
                echo 'Please Enter Your Information !';
            }
        } else {
            echo 'Please Submit';
        }
    }
?>

修改

尝试了

<?php 

  setcookie("testcookie","testvalue",0); 
  echo $_COOKIE['testcookie'];

?>

结果是

Notice: Undefined index: testcookie in /var/www/php-practice/cookies/test.php on line 1

并在浏览器中设置Cookie testcookie,其值为testvalue
感觉$_POST['submit']出现了一些错误 因为

if (isset($_POST['submit'])) {
    //everything else
} else {
    echo 'Submit Button Problem !';
}

打印Submit Button Problem ! 这是提交按钮的HTML

<input type="submit" value="Submit" name="submit" />

看着这个question并尝试了但仍然没有

我尽我所能,但它不起作用 帮助!

2 个答案:

答案 0 :(得分:1)

请注意,您无法同时在同一页面上设置和显示Cookie。如果您设置并重定向到另一个页面或重新加载页面,它将显示cookie值。

<?php 

 setcookie("testcookie","testvalue",0); //this will work
 echo $_COOKIE['testcookie']; // won't work unless reloaded

?>

对于您的初始脚本。确保$ _POST ['复选框']存在,复选框是html表单复选框输入的名称吗?

//Your HTML form should include this
<input type="checkbox" value="1" name="checkbox" /> 


 if (isset($_POST['checkbox'])) {

        $expire = time() + 60 * 60;
        setcookie('user', $_POST['username'], $expire);

    } else {
        header('Location: simple.php');
    }

修改HTML表单以包含method =“post”

<form method="post">
  <input type="text" name="username" />
  <input type="password" name="password" />
  <input type="checkbox" value="1" name="checkbox" /> 
  <input type="submit" value="Submit" name="submit" />
</form>

答案 1 :(得分:0)

$ _COOKIE仅在 网站加载后可用。