1

必要な生年月日フィールドの登録フォームがあります。

    <tr>
      <td><span class="required">*</span> <?php echo $entry_dob; ?></td>
      <td><input type="text" id="dob" name="dob" value="<?php echo $dob; ?>"   /><p id="age"></p>
        <?php if ($error_dob) { ?>
        <span class="error"><?php echo $error_dob; ?></span>
        <?php } ?>

したがって、私のphpコントローラーファイル[MVCでコード化されたソフトウェアを使用しています]では、フィールドを必須にするために次の関数があります。

 if ((strlen(utf8_decode($this->request->post['dob'])) < 3) || (strlen(utf8_decode($this->request->post['dob'])) > 32)) {
        $this->error['dob'] = $this->language->get('error_dob');
    }

また、ユーザーが19歳以上であるかどうかを検証する必要があります。そうでない場合は、エラーが表示されます。これを実現するために、同じphpコントローラーファイルで次の関数を使用しています。

$allowed_age = 19;
$bdate = strtotime($_REQUEST['dob']);
$age = (time()-$bdate)/31536000;
if($age < $allowed_age) {
 $this->error['dob'] = $this->language->get('error_dob');
}

そして、私はそれをテストしました、そしてそれはきちんと働いているようです。しかし、どうすれば2つのことを一度に検証できるのでしょうか。つまり、ユーザーがdobを入力したかどうか、および年齢が19歳を超えているかどうかを検証します。

私は専門家ではないので、これを達成するためのより良い方法を知っているなら、それを共有してください。

よろしくお願いします、

Codekmarv

4

1 に答える 1

2

年齢を取得するためにこれを使用してください

$age = floor( (strtotime(date('Y-m-d')) - strtotime($this->request->post['dob'])) / 31556926);

その後、$age値を取り、条件があればチェックインします

if (((strlen(utf8_decode($this->request->post['dob'])) < 3) || (strlen(utf8_decode($this->request->post['dob'])) > 32)) 
&& $age < 19) {
    $this->error['dob'] = $this->language->get('error_dob');
}

ユーザーが値を入力し、年齢が19を超えているかどうかを確認します。

&&複数の条件をチェックするには、演算子を使用する必要があります。

于 2012-11-16T05:17:57.330 に答える