2014-04-25 156 views
0

我有一个使用cookie保存信息的函数。问题是,当网页第一次加载时,我得到错误未定义变量“pagination_pos”...我将如何设置这个cookie的临时值为空作为第一次,以便我可以防止此错误..这里是函数:未定义的Cookie变量

function getPaginationPos(){ 
if (isset($_REQUEST['page']) && !empty($_REQUEST['page'])){ 
setcookie('pagination_pos',$_REQUEST['page'],time() + 86400); 
return $_REQUEST['page']; 
} else { 
return ($_COOKIE['pagination_pos']!='' ? $_COOKIE['pagination_pos'] : 1); 
} 

} 

我会在第6行

+0

之前有没有任何代码?或者这里的行号是否正确? –

+0

@RyanSmith它必须是那条线。引发错误的变量被称为“pagination_pos”,它仅在此处显示的第6行中引用。 – David

+0

@David Undefined superglobals不会在我的配置上抛出错误。它们只返回NULL。 –

回答

0

此错误显示因为您正在尝试测试并返回尚未初始化的变量。

推荐的解决方案是使用isset(),而不是比较它与一个空字符串:

return (isset($_COOKIE["pagination_pos"]) ? $_COOKIE["pagination_pos"] : 1); 

你还应该注意的是,因为你有PHP安装程序显示错误E_NOTICE这个错误才会出现。如果您愿意,您可以禁用该功能,尽管它是“在开发过程中推荐的”。


This question被称为这种类型的错误的“一般参考问题”。你可以找到一些非常详细的解释there

+0

谢谢@David ...我应该考虑isset()...我很抱歉,我仍在学习更多关于web开发的...现在我的分页工作正常...... – user3413550

0

未定义的变量,如果没有设置Cookie - 你不应该“回归” - 你应该使用这个

 } else { 
    return NULL; 
    }