【发布时间】:2013-04-26 01:33:53
【问题描述】:
基本上我想在 PHP 中创建一个 cookie,它可以记住用户在表单中输入的内容(指向单独的页面),这样无论何时他们回到页面,表单都已经预先填充了他们的任何信息第一次就放进去。
我到处寻找,并没有真正找到如何做到这一点的好答案。这就是我的代码现在的配置方式(不起作用)。
PHP:
$fname = $_POST['fname'];
$lname = $_POST['lname'];
if( ( $fname != null ) and ( $lname != null ) )
{
setcookie( "fname", $fname, time() + 36000 );
setcookie( "lname", $lname, time() + 36000 );
exit();
}
?>
HTML:
<form method="post" action="hidden.php">
<p>First Name: <input type="text" maxlength="40" name="fname" id="fname" value="<?php if(isset($_COOKIE['fname'])){echo $fname;} else {echo "";} ?>"/></p>
<p>Last Name: <input type="text" maxlength="40" name="lname" id="lname" value="<?php if(isset($_COOKIE['lname'])){echo $lname;} else {echo "";} ?>"/></p>
任何介意告诉我我做错了什么以及如何解决它?谢谢!
【问题讨论】:
-
我不知道 cookie 在 PHP 中是如何工作的,但看起来您设置了 cookie,但在页面加载时从未从 cookie 中取回值。尝试在页面加载时将 cookie 值加载到 fname 和 lname 变量中。
-
是的,PHP cookie 和 JavaScript cookie 的工作方式完全不同。在 PHP 中,表单中的 "" 相当于我的 "getcookie" 函数。不过谢谢!
-
我从未在 javascript 中使用过 cookie,我认为您误解了我的评论...我的意思是您有一个名为 $fname 的变量,您使用“setcookie”将其放入 cookie 但无处在您的代码中,您是否从 cookie 中提取值并将 $fname 的值设置为 cookie 中的值
-
好吧,我明白你在说什么了。无论出于何种原因,该帖子没有显示我的一些代码,所以我只是对其进行了编辑以表明我从一开始就定义了这些变量。
-
查看@RST 的回答,您需要从 COOKIE 数组中获取值。