使用Cookie保存颜色


Save color using cookies

你好,我想用cookie保存我输入的颜色,如果用户刷新页面的颜色将被保存并准备下次使用。Cookie只能设置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>";
            }
        }
    }
}

?>

您从未将$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>";
  }
}