保存用户表单输入信息,以便以后使用PHP cookie访问


Save user form input info for later visits with PHP cookies?

基本上我想在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>

谁介意告诉我我做错了什么,我怎么能解决它?谢谢你!

<?php if(isset($fname))...
应该

<?php if(isset($_COOKIE['fname']))

同样适用于lname命令

编辑(不确定这是否是你的设置,但如果你把下一个代码放在一个文件中,它应该工作)

<?php
$fname =  $_POST['fname'];
$lname = $_POST['lname'];
if( ( $fname != null ) and ( $lname != null ) )
{
  setcookie( "fname", $fname, time() + 36000 );
  setcookie( "lname", $lname, time() + 36000 );
}
echo "post fname ".$_POST['fname']."<BR>";
echo "post lname ". $_POST['lname']."<BR>";
echo "cookie ". $_COOKIE['fname']."<BR>";
echo "cookie ". $_COOKIE['lname']."<BR>";
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<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 $_COOKIE['fname'];} else {echo "";} ?>"/></p>
<p>Last Name: <input type="text" maxlength="40" name="lname" id="lname" value="<?php if(isset($_COOKIE['lname'])){echo $_COOKIE['lname'];} else {echo "";} ?>"/></p
<input type="submit" name="submit" value="Send">
</body>
</html>