【问题标题】:Tricky verification code on a form表单上的棘手验证码
【发布时间】:2014-03-11 11:41:05
【问题描述】:

我在以这种方式编码的表单上实施了控制检查:

public function checkCittaResidenza() {
    if (is_string($this->citta_residenza) && (strlen($this->citta_residenza) <= 45 || strlen($this->citta_residenza == 0))) {
        $this->corretti['citta_residenza'] = htmlentities($this->citta_residenza, ENT_QUOTES);
    } else {
        $this->ErroriTrack('citta_residenza');
    }
}

在这个版本中,它只是检查它是否是一个字符串并检查它的长度是否应该小于 45 个字符。如果为正,则将字符串放入数组 corretti() 中,否则在检查类的抽象类父级中初始化上面指定的错误消息。

我想做的是:

1) 检查字符串是否不为空。 2)如果它不为空,请进行检查(这可能比此处显示的简单检查更具体,但我对此没有问题),如果正确则将其放入 corretti() 中,如果不正确则初始化错误,正如代码现在所说的那样。

3)如果字符串为空,程序应该跳过检查,直接将空值写入数组corretti(),因为表单被想象为随着时间的推移在不同的步骤中完成,所以总是会发生没有填满。

我在为最后一个条件编写 if 循环时遇到问题,我尝试和想象的每个循环都将空条件作为初始化错误的原因。

谢谢!

【问题讨论】:

  • 这样的东西可以吗? $this-&gt;corretti['citta_residenza'] = isset($this-&gt;citta_residenza)?$this-&gt;citta_residenza:NULL;
  • 还没有很好地阅读这个问题 - 但请注意:isset() 将检查传递的东西是否确实存在,并且不为空。如果要检查是否存在但允许为 NULL,请使用 property_exists

标签: php if-statement cycle


【解决方案1】:

试试这个,

public function checkCittaResidenza() {
    if(isset($this->citta_residenza)){
if ((is_string($this->citta_residenza) && (strlen($this->citta_residenza) <= 45) || $this->citta_residenza == "")) {
    $this->corretti['citta_residenza'] = htmlentities($this->citta_residenza, ENT_QUOTES);
} else {
    $this->ErroriTrack('citta_residenza');
}
} else {
$this->corretti['citta_residenza'] = "null";
}
}

【讨论】:

  • 嗯,就像我之前发生的那样,这两个条件似乎冲突,现在似乎没有检查请求
  • 感谢帮助,我终于这样解决了: public function checkCittaResidenza() { if ($this->citta_residenza == NULL) { $this->corretti['citta_residenza'] = htmlentities($这->citta_residenza,ENT_QUOTES); } elseif (is_string($this->citta_residenza) && (strlen($this->citta_residenza) corretti['citta_residenza'] = htmlentities($this->citta_residenza, ENT_QUOTES); } else { $this->ErroriTrack('citta_residenza'); } } 看起来更简单
  • 我过去也尝试过,isset 以某种方式仅检查变量是否已设置,而不是其内容。澄清一下,如果变量为空,则 isset 给出 TRUE。无论如何感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 2012-04-30
相关资源
最近更新 更多