1

好吧,我正在做的是我有一个文本框和提交按钮,可以发布到当前页面。用户可以在其中输入他们的名字。它会创建一个 cookie,并且该 cookie 会在他们按下提交后在页面上回显他们的名字。

但我似乎无法在一页刷新中做到这一点。

这是我到目前为止所拥有的:

<?php 
error_reporting(E_ALL ^ E_NOTICE);
?>

<form action="#" method="post">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php 
$post = $_POST["fname"]; 

$expire=time()+60*60*24*30;
setcookie("user", $post, $expire);

echo $_COOKIE["user"];
?>

谢谢!

4

3 回答 3

2

一旦设置了 cookie,就可以在下一页加载时使用$_COOKIEor$HTTP_COOKIE_VARS数组访问它们:

<?php
   if (isset($_POST['fname'])) {
       $post = $_POST["fname"]; 

       $expire=time()+60*60*24*30;
       setcookie("user", $post, $expire);
      header("Location: index.php"); //notice the redirect?
    }
 ?>

<form action="" method="post">
   Name: <input type="text" name="fname">
   <input type="submit">
</form>

<?php if (isset($_COOKIE['user'])) {
   echo $_COOKIE["user"];
  }
?>
于 2013-06-16T12:30:05.133 回答
1

cookie 应在输出任何内容 (html) 之前设置

<?php 
error_reporting(E_ALL ^ E_NOTICE);

if(isset($_POST['fname'){
    $post = $_POST["fname"]; 

    $expire=time()+60*60*24*30;
    setcookie("user", $post, $expire);

    echo $_COOKIE["user"];
}
?>
<form action="#" method="post">
Name: <input type="text" name="fname">
<input type="submit">
</form>
于 2013-06-16T12:11:44.320 回答
1

试试这段代码,我还添加了一些检查:

<?php 
error_reporting(E_ALL ^ E_NOTICE);

if ($_SERVER['REQUEST_METHOD'] === 'post' && isset($_POST['fname']) && !empty($_POST['fname'])) {
$post = $_POST["fname"]; 

$expire=time()+60*60*24*30;
setcookie("user", $post, $expire);
}
?>

<form action="#" method="post">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php if (isset($_COOKIE['user'])) {
echo $_COOKIE["user"];
} else {
echo 'There is no firstname.';
}
?>
于 2013-06-16T12:15:37.653 回答