未定义的索引:将cookie值转换为变量时

时间:2011-05-23 03:42:44

标签: php variables cookies

问题

以下代码从“print $ readerStatus” -

行产生此错误
  

未定义的索引:readerStatus

代码

<?php 
//Get Cookie Value
if (isset($_COOKIE['readerStatus'])) {
$readerStatus=$_COOKIE['readerStatus'];
} Else {
$readerStatus="Not Set";}
echo "The value of Cookie readerStatus is " .  $_COOKIE['readerStatus'];
print    $readerStatus;

&GT;

背景 目标很简单,如果设置了cookie,我想将值传递给Javascript。我的策略如下:

  • 从Cookie中获取值
  • 将变量设置为cookie的值
  • 然后在Javascript中使用php echo传输值。

它按预期工作但是Eclipse给了我错误,所以我认为上面的代码有问题。

我很欣赏有关问题可能来源的任何指示。

由于

3 个答案:

答案 0 :(得分:0)

这有效吗?

<?php 
//Get Cookie Value
if (isset($_COOKIE['readerStatus'])) {
    $readerStatus=$_COOKIE['readerStatus'];
} else {
    $readerStatus="Not Set";
}
echo ("The value of Cookie readerStatus is ".$readerStatus);
print ($readerStatus);
?>

答案 1 :(得分:0)

这是一个警告,而不是错误。但是,您可以使用array_key_exists跳过错误。一般来说,我不喜欢这种检查。

 if (array_key_exists('readerStatus', $_COOKIE))
 {
     $readerStatus=$_COOKIE['readerStatus'];
 }
 else
 {
     $readerStatus='Not Set';
 }
 echo 'The value of Cookie readerStatus is '. $readerStatus;

答案 2 :(得分:0)

有些IDE比PHP解析器本身更不宽容。话虽这么说,运行代码时是否收到任何错误或通知? PHP中的变量是隐式声明的,因此未定义的索引消息只是一个NOTICE(可以忽略),关于访问数组元素而不首先存在它。

如果您在访问之前检查它是否存在,那么您应该没有问题。

$readerStatus = isset($_COOIKE['readerStatus']) ? $_COOIKE['readerStatus'] : '';