PHP破解不起作用

时间:2015-01-26 16:27:33

标签: php date if-statement break

我想在周末禁用表单。在我的代码中,我在变量$ noaccess之后休息了一下。当我运行代码时,表单不会加载。我不知道发生了什么事请帮忙。  这是我的代码:

$wkday = date('D');
if ($wkday == "Sun") {
            $noaccess = "yes";
            break;
} elseif ($currday == "Sat") {
            $noaccess = "yes";
} else {
         $noaccess = "no";
}

以下是显示表单的代码:

if ($noaccess == "yes") {
echo "You cannot access this area now";
} else {
//Form displays normally 
}

2 个答案:

答案 0 :(得分:2)

您在$currday

中引用了错误的变量elseif ($currday == "Sat")

$wkdayelseif ($wkday == "Sat")相同$wkday = date('D');

正如Dave Goten所说,break; 是不必要的。

如有必要,请添加exit;die;return;

$wkday = date('D');
if ($wkday == "Sun") {
            $noaccess = "yes";
} elseif ($wkday == "Sat") {
            $noaccess = "yes";
} else {
         $noaccess = "no";
}

// test echo

if ($noaccess == "yes") {
echo "You cannot access this area now";
} else {
//Form displays normally 

echo $noaccess; // test variable echo
echo "You have access";

}

error reporting等基本调试会在指定日期发出未定义变量 的信号。

即:Notice: Undefined variable: currday...

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应仅在暂存时完成,而不是生产。


另外,确保您的表单与以下内容类似:

//Form displays normally
echo "<form action='' method='post'>"; // or get. I have no idea what you're using
echo "<input type='text' name='name'>";
echo "<input type='submit' name='submit'>";
echo "</form>";

...因为你没有在你的问题中加入。只是为了确保没有语法错误。

答案 1 :(得分:1)

使用or运算符来简化逻辑,然后不需要使用break。

   if ($wkday == "Sun" || $wkday == "Sat") {
                $noaccess = "yes";
    } else {
             $noaccess = "no";
    }