在第一次访问之后,使用PHP cookie用以前的用户输入自动填充表单


After first visit, auto populate a form with previous user input using PHP cookies?

基本上我想在PHP中创建一个cookie,记住用户在表单中输入的内容(指向一个单独的页面),这样每当他们回到页面时,表单已经预先填充了他们第一次输入的任何信息。

我找遍了所有地方,都找不到一个好的答案。这就是我的代码现在是如何配置的(它不工作)。

PHP:

    $fname =  $_POST['fname'];
    $lname = $_POST['lname'];
    setcookie( "fname", $fname, time() + 36000 );
    setcookie( "lname", $lname, time() + 36000 );
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 $_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>

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

您已经接近了,但是HTML中的$fname是空的(假设您已经提交了所有相关代码)。将"$fname"设置为"$_COOKIE['fname']"的值,或者直接回显cookie的值。例如:

echo $_COOKIE['fname']; // Be sure to sanitize this!