filter_input的php错误

时间:2014-03-28 21:07:03

标签: php html

我不明白这个错误,而且我从来没有使用过“INPUT_GET,'wk',FILTER_SANITIZE_STRING”之前有人可以解释一下或帮助解决这个问题。

错误 注意:使用未定义的常量“wk” - 在第172行的/Applications/MAMP/htdocs/Calendar/test1.php中假设为“'wk”

代码

if(!filter_input(INPUT_GET, ‘wk’, FILTER_SANITIZE_STRING))
    {
    $week = $weekOfToday;
    }
        else
        {
        $week = filter_input(INPUT_GET, ‘wk’, FILTER_SANITIZE_STRING);
        }

1 个答案:

答案 0 :(得分:2)

我使用此代码:

if(filter_has_var(INPUT_GET, 'wk'))
  $week=filter_input(INPUT_GET, 'wk', FILTER_SANITIZE_STRING);
if(empty($week)) $week=$weekOfToday;

看起来您的代码问题实际上只是wk周围的引号。使用常规单引号。

其他一些对我来说很奇怪的是$周被过滤为一个字符串。周数通常作为数字处理。如同从一年开始的周数。如果是这种情况,那么这是更好的代码:

if(filter_has_var(INPUT_GET, 'wk'))
  $week=filter_input(INPUT_GET, 'wk', FILTER_SANITIZE_NUMBER_INT);
if(empty($week)||$week<1||$week>53) $week=$weekOfToday;

或类似的东西。处理周数的问题在于,有一些不同的系统可用于确定一年中的第一周。有时它是第一个太阳的一周,有时是第一个星期一,但是usually it is the week with the first Thur。您将需要确定您正在使用的系统。因为很难向客户解释这个问题,所以我建议你以一种方式制作你的程序,当他们改变主意思考他们想要使用哪一个时,这是一个简单的解决方法。