Web服务的PHP验证

时间:2017-02-15 10:10:09

标签: php web-services web yii

我对使用php编写Web服务的条件感到困惑。我有一个字段type,应该是wd,没有别的。 w表示工作日,例如周一,周二至周五,d适用于2017-02-15等日期

基本上我想要的是

type = w 然后 days = Monday //周一至周五可以是任何内容。

那么我将如何在星期一到星期五之间对days字段进行验证呢?如果用户输入其他内容,应该给出错误。?

同样,如果type = d,那么days = 2017-02-15因此,如果类型为d且日期应为2017-02-15之类的日期,那么它不应该是星期一或任何其他字符或数字,它应该是一个日期。

这是我试过的......

if (isset($this->inputs['day_type']) == 'w') {
    // w = Monday, Tuesday etc
    if (isset($this->inputs['days']) && !empty($this->inputs['days'])) {

        $campaign->days = $campaign->days;
    }
} elseif (isset($this->inputs['day_type']) == 'd') {
    if (isset($this->inputs['dates']) && !empty($this->inputs['dates'])) {
        $seperatingDates = explode(";", $this->inputs['dates']);
        $campaign->days = $seperatingDates;
    }
}

1 个答案:

答案 0 :(得分:-1)

您可以使用

if (isset($this->inputs['day_type']) && $this->inputs['day_type'] == 'w') {
    // w = Monday, Tuesday etc
    if (isset($this->inputs['days']) && !empty($this->inputs['days'])) {

        $campaign->days = $campaign->days;
    }
} 
elseif (isset($this->inputs['day_type']) && $this->inputs['day_type'] == 'd') {
    if (isset($this->inputs['dates']) && !empty($this->inputs['dates'])) {
        $seperatingDates = explode(";", $this->inputs['dates']);
        $campaign->days = $seperatingDates;
    }
}

说明:

如果设置了值,则

isset(value)返回true,否则返回false

所以在这里你要检查post值(day_type)是否存在且等于w,然后执行第一个语句块。如果设置了value(day_type)并且它等于d,则执行第二个语句块。

更新:

此外,您只需使用switch..case即可:

$day_type = $this->inputs['day_type'];

switch($day_type)
{
     case 'w' : 
         if (isset($this->inputs['days']) && !empty($this->inputs['days'])) {
            $campaign->days = $campaign->days;
         }
         break;

     case 'd' : 
         if (isset($this->inputs['dates']) && !empty($this->inputs['dates'])) {
             $seperatingDates = explode(";", $this->inputs['dates']);
             $campaign->days = $seperatingDates;
         }
}