单击复选框时未保存 Cookie
Cookie not being saved when checkbox is clicked
我有一个复选框,当我单击它时,我希望它设置一个具有数组值的 cookie。但是当我点击复选框时,它并没有设置我的 cookie。
我不明白为什么没有设置。我为 cookie 的值创建数组的方式有问题吗?
这是我的代码:
extract($_POST);
$code = $_POST['code'];
$total= 100;
if(isset($save)){
echo "Saved";
$cookie = array(
'name' => $code,
'value' => $total,
);
setcookie("cookie",json_encode($cookie),86500);
}
if(isset($_COOKIE['cookie'])){
echo "SET";
}else{
echo "NOT SET";
}
<form method='post'>
<input type="checkbox" name="save" value="1">Save
<input name='code' />
</form
正如 CBroe 所提到的,您应该避免使用 extract(为了安全)。
你应该有一个提交按钮(但我想你有一个但没有包含在你发布的代码中,对吧?)
请使用 time() 来计算 cookie 的寿命,因此请使用类似:
setcookie("cookie",json_encode($cookie),time()+3600);
- 使用 header 重定向在设置 cookie 时重新加载脚本(如下所示)- 以显示 cookie 的最新状态:
header('Location: '.$_SERVER['PHP_SELF']);
因此,请使用以下代码:
<?php
// extract($_POST);
$code = $_POST['code'];
$total= $_POST['total'];
if( isset($_POST["save"]) ){
if ($_POST["save"]=="1") {
echo "Saved";
$cookie = array(
'name' => $code,
'value' => $total,
);
setcookie("cookie",json_encode($cookie),time()+3600);
}
header('Location: '.$_SERVER['PHP_SELF']);
die;
}
if(isset($_COOKIE['cookie'])){
echo "SET";
$getcookie=json_decode($_COOKIE['cookie']);
echo "<br>Name:". $getcookie ->name;
echo "<br>Value:". $getcookie ->value;
echo "<br>";
}else{
echo "NOT SET";
}
?>
<form method='post' action=#>
<input type="checkbox" name="save" value="1">Save (must tick to save as cookie)
<input name='code' placeholder='Enter Name'/>
<input name='total' placeholder='Enter a value'/>
<input type=submit>
</form>
我有一个复选框,当我单击它时,我希望它设置一个具有数组值的 cookie。但是当我点击复选框时,它并没有设置我的 cookie。
我不明白为什么没有设置。我为 cookie 的值创建数组的方式有问题吗?
这是我的代码:
extract($_POST);
$code = $_POST['code'];
$total= 100;
if(isset($save)){
echo "Saved";
$cookie = array(
'name' => $code,
'value' => $total,
);
setcookie("cookie",json_encode($cookie),86500);
}
if(isset($_COOKIE['cookie'])){
echo "SET";
}else{
echo "NOT SET";
}
<form method='post'>
<input type="checkbox" name="save" value="1">Save
<input name='code' />
</form
正如 CBroe 所提到的,您应该避免使用 extract(为了安全)。
你应该有一个提交按钮(但我想你有一个但没有包含在你发布的代码中,对吧?)
请使用 time() 来计算 cookie 的寿命,因此请使用类似:
setcookie("cookie",json_encode($cookie),time()+3600);
- 使用 header 重定向在设置 cookie 时重新加载脚本(如下所示)- 以显示 cookie 的最新状态:
header('Location: '.$_SERVER['PHP_SELF']);
因此,请使用以下代码:
<?php
// extract($_POST);
$code = $_POST['code'];
$total= $_POST['total'];
if( isset($_POST["save"]) ){
if ($_POST["save"]=="1") {
echo "Saved";
$cookie = array(
'name' => $code,
'value' => $total,
);
setcookie("cookie",json_encode($cookie),time()+3600);
}
header('Location: '.$_SERVER['PHP_SELF']);
die;
}
if(isset($_COOKIE['cookie'])){
echo "SET";
$getcookie=json_decode($_COOKIE['cookie']);
echo "<br>Name:". $getcookie ->name;
echo "<br>Value:". $getcookie ->value;
echo "<br>";
}else{
echo "NOT SET";
}
?>
<form method='post' action=#>
<input type="checkbox" name="save" value="1">Save (must tick to save as cookie)
<input name='code' placeholder='Enter Name'/>
<input name='total' placeholder='Enter a value'/>
<input type=submit>
</form>