如果条件不适合所有情况

时间:2017-11-09 06:59:15

标签: php mysql if-statement

我正在开发一个模块,其中候选人出现在5个章节的测验中。有些候选人可以根据这些案例出现在测验中。如果候选人的测验出现有效日期结束,他会收到一个警告框,说明他的有效期结束,并要求他向管理员发送有效期延长的请求。此警报框会弹出不同的条件。现在如果候选人没有出现任何章节的测验直到有效日期,并且他要求管理员许可,并且管理员允许他,他可以出现在测验中。在这种情况下,即使在获得有效性扩展警告框的权限后,也会弹出,因为他没有通过任何测验。如何修改下面给出的条件,以便即使在获得许可后候选人是否已通过任何测验,候选人也不会获得警报框。 这是我的代码,我只是因为上述情况而陷入这种情况。

 if((strtotime($today_date) >= strtotime($end_date) || ($pass_count == 0))) {

     echo ("<SCRIPT LANGUAGE='JavaScript'>
     mess1= 'Your exam validity date has been expired. Click OK to request for extending your Quiz validity or you can ignore by clicking Cancel.'  

     x = confirm(mess1);
     if (x == true) {
         window.location = 'validity_request_mail.php?userid=$userid ';    

     } 
      </SCRIPT>");
 }  

将非常感谢帮助或建议。 感谢。

2 个答案:

答案 0 :(得分:0)

您可以按照以下方式查看您的许可。假设您已在$status变量中存储了权限。

if((strtotime($today_date) >= strtotime($end_date) || ( $pass_count == 0 && $status != 2) ) )
  {

 echo ("<SCRIPT LANGUAGE='JavaScript'>
       mess1='Your exam validity date has been expired. Click OK to request for extending your Quiz validity or you can ignore by clicking Cancel.'  

       x = confirm(mess1);
       if (x == true)  
   {
       window.location = 'validity_request_mail.php?userid=$userid ';    

   } 
      </SCRIPT>");
 }

答案 1 :(得分:0)

我不确定我是否理解你的问题,但我希望这会有所帮助:

if ($admin_has_given_access || $pass_count > 0 || strtotime($today_date) < strtotime($end_date))
    // Grant access
else
    // Redirect