![](/img/trans.png)
[英]What's wrong with this PHP code snippet I found? I get undefined variable 'obj'
[英]What's wrong with this PHP $_COOKIE code snippet?
我有一个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”,那么我将绘制用于指定文件名(“ fileName”元素)的UI。 用户输入文件名并单击“确定”,然后将其分配给Cookie“文件名”,因为在整个应用程序中都使用了文件名。 (当然,当用户单击Submit#1且cookie'filename'已设置时,我将其值写入'fileName'元素。)。 当我处于由Submit#1创建的UI内并且可见“ fileName”元素时,一切正常,并且cookie被成功设置/读取。 但是,当我单击提交#2时,它会绘制UI来满足其他需求,但使用Cookie的“文件名”,这就是问题所在。 我发现cookie'filename'失去了从'fileName'元素读取的值,并再次被赋予默认值。
PHP.net :
一旦设置了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);}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.