Здравствуйте, я хочу сохранить с cookie мой цвет из ввода, и если пользователь обновит цвет страницы, будет сохранен и готов к следующему использованию. Печенье должно быть установлено только на 1 час, и если просроченные куки будут удалены. Извините за мой английский и спасибо за все Помогите
<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>";
}
}
Других решений пока нет …