【问题标题】:how should I use php to set cookie for this situation我应该如何使用 php 为这种情况设置 cookie
【发布时间】:2013-02-11 15:17:02
【问题描述】:

如果我有下面的功能,在你输入(必须)你的名字和姓氏之后,就会选择一个单选按钮,但我想设置一个 cookie,让我们说一分钟或者如果那个人再次回来然后自动让'说会有一条欢迎回复消息,而不是说输入您的姓名并选择一个单选按钮....我该怎么做?

我有这个作为我的 1.php 用于询问姓名

echo "<form action='lab17a.php' method='get'>";
echo "First Name: ";
echo "<input type='text' name='fname' /><br/>";
echo "Last Name: ";
echo "<input type='text' name='lname' /><br/>";
echo "Red<input type='radio' name='bgcolor' value='red'><br/>";
echo "Blue<input type='radio' name='bgcolor' value='blue'><br/>";
echo "Yellow<input type='radio' name='bgcolor' value='yellow'><br/>";
echo "Green<input type='radio' name='bgcolor' value='green'><br/>";
echo "<input type='submit'/>";
echo "</form>";

这是2.php提交后会测试是否输入了字段...

if(empty($_GET["fname"]) || (empty($_GET["lname"])))
{
    echo "Press the browser's BACK button and enter both names.<br/>You must enter a first name last name";
}
elseif(!(empty($_GET["fname"])) && (!(empty($_GET["lname"]))) && (empty($_GET["bgcolor"])))
{
    echo "Hello " . $_GET["fname"] . " ". $_GET["lname"] . "!<br/>" . "Leaving the background color of the Web page default color (white)";
}
elseif(!(empty($_GET["fname"])) && (!(empty($_GET["lname"]))) && (!empty($_GET["bgcolor"])))
{
echo "<body bgcolor='" . $_GET["bgcolor"] . "'>" . "Hello " . $_GET["fname"] . " ". $_GET["lname"] . "!<br/>" . "Background color changed to the selected color";
}

提前致谢

【问题讨论】:

    标签: php forms cookies save


    【解决方案1】:

    使用 setcookie 方法。它有一个属性,您可以在其中设置过期时间。

    更多信息在这里:

    http://php.net/manual/en/function.setcookie.php

    所以说你的formcheck在2.php中已经完成并且你没有错误(我在这里使用带有formErrors的字符串,如果它是空的,我设置我的cookie)。

    if ($formErrors == "") {
        setcookie("name", $nameValue, time() + 60); // Say you want the cookie to contain the filled in name and you want it to expire in 60 secs.
    }
    

    然后在您的 1.php 中检查是否设置了 cookie,如果设置了,则执行您想要的操作(在您的情况下,显示一条消息)。

    if (isset($_COOKIE['name'])) {
        // show your message
    }
    

    在 if 语句中,您可以使用 $_COOKIE['name'] 来获取值。 希望这会有所帮助

    【讨论】:

    • 是的,我检查了 php.net 并阅读了它,但仍然不确定我应该在哪里设置cookie 和 $_COOKIE...:(
    • 好吧,如果我明白你在做什么,你的表单检查是在 2.php 上,对吗?然后,如果表单检查完成,您应该执行 setcookie 方法。您可以在任何地方调用 $_COOKIE 值。我会编辑我的帖子给你一个代码示例
    • 非常感谢......这里还是新手,试图弄清楚事情是如何运作的。甚至不确定我在 2.php 上进行表单检查是否正确,因为我被告知在提交后将设置 cookie,如果我重新进入页面 1.php 则不会显示表单询问名字和东西
    • 所以如果条件满足我不在2.php中使用setcookie然后在1..php中调用$_COOKIE?
    • 完全!!!然后我开始想一些类似的事情并开始让它工作:P但只是想看看你的样本是如何让我更理解它的:P非常感谢~!
    【解决方案2】:

    我确定您在此页面上有提交按钮。在点击提交按钮时使用 javascript 设置 cookie,下次当用户访问此页面时检查是否使用 php 设置了该 cookie,如果是,则闪烁一条欢迎回来的消息。

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2022-07-22
      • 2012-02-17
      相关资源
      最近更新 更多