【问题标题】:Save color using cookies使用 cookie 保存颜色
【发布时间】:2015-04-09 20:10:36
【问题描述】:

你好,我想用 cookie 保存我输入的颜色,如果用户刷新页面颜色将被保存并准备好下次使用。Cookies 必须设置仅 1 小时,如果过期的 cookie 将被删除。对不起我的英语和感谢大家的帮助

<table>
<form action='' method='post'>
    <tr><td><label>URL adresa: </label></td><td><input type='text' placeholder='napr.google.com' name='url' /></td></tr>
    <tr><td><label>Titulek: </label></td><td><input type='text' placeholder='napr.google' name='title' /></td></tr>
    <tr><td><label>Vyberte barvu: </label></td><td><input type='color' name='color' /></td></tr>
    <tr><td><label>Otevřít v novém okně </label></td><td><input type='checkbox' name='window' />
    <tr><td></td><td><input type='submit' name='submit' /></td></tr>
</form>

<?php

if (isset($_POST['submit']))
{   
    if (!empty($_POST['url'])) 
    {
        if (!empty($_POST['title']))
        {
            $url = $_POST['url'];
            $title = $_POST['title'];
            $color = $_POST['color'];
            $explode1 = explode("/",$url);
            $explode2 = explode(".",$explode1[2]);
            setcookie("color", $color, time() + 3600, '/');
            if (isset($_POST['window'])) 
            {
                setcookie("window", $_POST['window'], time()+3600, '/');
                echo "<a style='color:" . $_COOKIE['color'] . "' href=" . $url . " target='_blank'>" . $explode2[1] . "." . $explode2[2] . "</a>";
            } elseif (isset($_COOKIE['window'])) {
                echo "<a style='color:" . $_COOKIE['color'] . "' href=" . $url . " target='_blank'>" . $explode2[1] . "." . $explode2[2] . "</a>";
            } else {
                echo "<a style='color:" . $_COOKIE['color'] . "' href=" . $url . ">" . $explode2[1] . "." . $explode2[2] . "</a>";
            }
        }
    }
}

?>

【问题讨论】:

  • 那么,问题是什么?如果有错误?检查他们?不知道。
  • 我删除了我最后一个错误的代码,我问你怎么做,因为我不知道如何保存这些 cookie 以供下次使用

标签: php cookies colors


【解决方案1】:

您永远不会将$color 保存到您的 cookie:

if (isset($_POST['window'])) {
  setcookie("window", $color, time() + 3600, '/');
  echo "<a style='color:" . $color . "' href=" . $url . " target='_blank'>" . $explode2[1] . "." . $explode2[2] . "</a>";
}

或者如果$color需要单独保存:

setcookie("color", $color, time() + 3600, '/');

就我个人而言,我会将它保存到这样的会话中:

session_start();
$_SESSION['color'] = $color;

希望对您有所帮助。 编辑:

if (isset($_POST['submit']) && (!empty($_POST['url']) && (!empty($_POST['title'])) {
  $url = $_POST['url'];
  $title = $_POST['title'];
  $color = (($_POST['color'] == $_COOKIE['color'])?$_COOKIE['color']:$_POST['color']);
  $explode1 = explode("/",$url);
  $explode2 = explode(".",$explode1[2]);
  setcookie("color", $color, time() + 3600, '/');
  if (isset($_POST['window'])) {
    setcookie("window", $_POST['window'], time()+3600, '/');
    echo "<a style='color: $color' href='$url' target='_blank'>$explode2[1]}.{$explode2[2]}</a>";
  } else {
    echo "<a style='color: $color' href='$url'>{$explode2[1]}.{$explode2[2]}</a>";
  }
}

【讨论】:

  • 哦...我的意思是窗户是我的坏...但是颜色我也需要
  • 试试setcookie("window", $_POST['window'], time()+3600, '/');
  • 我会尝试但我想问你我可以在开头使用这个设置的cookie还是如果(isset($color)),但是这个输入颜色总是设置的,因为默认颜色是黑色,所以我不知道
  • 视情况而定。如果您担心 $color 可能未设置或为空,那么您需要事先检查。 $color = isset($_POST['color'])?$_POST['color']:""; if(!empty($color)){ setcookie("cookie", $cookie, time()+3600, '/'); }
  • Cookies 现在没问题,我只在代码中使用 setcookie 并把 value='$_COOKIE['color']' 输入类型颜色中就可以了。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
相关资源
最近更新 更多