我在php中有一个setcookie函数。 我有一个带有输入字段和提交按钮的jquery对话框。当我在输入字段中输入邮政编码并按下提交时,邮政编码将保存在php cookie中。
此cookie将显示在主页的输入字段中。
现在我的问题是,当我没有设置cookie时,例如我将输入字段留空并单击提交它会给我一个错误。但是在输入字段中。
我正在使用codeigniter,这可能是问题所在。
错误:
消息:未定义索引:名称文件名:views / navmenu.php行 数量:33
我的设置Cookie和表单代码:
<div id="dialog" class="hidden" title="Welkom bij OostWestRegioBest.nl">
Vul hier uw postcode in.
<form method="post" action"">
Postcode: <input type="text" name="name" size="25">
<input type="submit" value="Opslaan">
<input type="hidden" name="submitted" value="true">
</form>
<?php
// set the cookie with the submitted user data
setcookie('name', $_POST['name']);
?>
<?php
if(isset($_POST['Submit']))
{
header("location: {$_SERVER['PHP_SELF']}");
}
?>
</div>
我的输入字段,其中cookie将显示在。
<input type="text" value='<?php echo $_COOKIE['name'] ?>'>
希望有人可以帮助我。
感谢。
答案 0 :(得分:1)
仅当$ _POST包含索引名称的元素时才设置cookie。
你可以试试这个。
<?php
// set the cookie with the submitted user data
setcookie('name', isset($_POST['name']) ? $_POST['name'] : "");
?>
或者只在包含带索引名称的元素时才设置cookie。
<?php
if (isset($_POST['name'])) {
// set the cookie with the submitted user data
setcookie('name', $_POST['name']);
}
?>
根据您的要求选择任何一种。
答案 1 :(得分:1)
请在提交表单后设置Cookie
if(isset($_POST['Submit'])){
setcookie('name', $_POST['name']);
}
您可以将输入字段更改为
<input type="text" value='<?php echo isset($_COOKIE['name']) ? $_COOKIE['name'] : '' ?>'>