我有一个input='text' name='fileName'
元素,并希望将其值存储在Cookie filename
中。首次创建时,cookie filename
被分配默认常量DEFAULT_FILE_NAME
如果设置了请求变量fileName
(通过POST方法),则为cookie filename
分配此请求的值变量。否则,cookie保留其旧值。
。我尝试使用以下代码段执行此操作:
if (!isset($_COOKIE['filename'])) {
setcookie('filename', DEFAULT_FILE_NAME);
$_COOKIE['filename'] = DEFAULT_FILE_NAME;
}
if (isset($_REQUEST['fileName'])) {
setcookie('filename', $_REQUEST['fileName']);
$_COOKIE['filename'] = $_REQUEST['fileName'];
}
问题是,当未设置请求变量fileName
时,cookie被识别为不存在,并再次被分配DEFAULT_FILE_NAME。出了什么问题?
我有一个表单和三个提交按钮作为主菜单。如果单击提交#1,则绘制用于指定文件名的UI(' fileName'元素)。用户输入文件名并单击“确定”,然后将其分配给cookie'文件名'因为整个应用程序都使用文件名。 (当然,当用户点击提交#1并且已经设置了cookie' filename'时,我将其值写入' fileName'元素。)。当我在提交#1和' fileName'创建的UI中时elem可见,一切正常,cookie已成功设置/读取。但是,当我点击提交#2时,会根据其他需求绘制用户界面,但会在出现问题时使用Cookie' filename'我发现cookie'文件名'失去从' fileName'中读取的值。元素并再次分配默认值。
答案 0 :(得分:0)
设置好Cookie后,可以在下一页访问它们 使用$ _COOKIE或$ HTTP_COOKIE_VARS数组加载。注意,超级球 例如$ _COOKIE在PHP 4.1.0中可用。 Cookie值也 存在于$ _REQUEST。
试试这个:
if (!isset($_COOKIE['filename'])) {setcookie('filename')}
if (isset($_REQUEST['fileName'])) {
setcookie('filename', $_REQUEST['fileName']);
}
else{
setcookie('filename', DEFAULT_FILE_NAME);
}
更新: 也许这个:
if (!isset($_COOKIE['filename'])) {setcookie('filename'),DEFAULT_FILE_NAME,time()+3600);}
if (isset($_REQUEST['fileName'])) {setcookie('filename', $_REQUEST['fileName'],time()+3600);}