Я пытаюсь сделать так, чтобы, если человек вводит неверный формат почтового индекса или оставляет входной пул, он выдаст ошибку. Я пытаюсь понять, почему он не работает. Пожалуйста помоги!Почему мой PHP не проверяется?
<td>Postal Code</td>
<td>
<input type="text" id="postal_code" name="postal_code" value="<?php if($_POST['postal_code'] == null){ echo '';}else{echo $_POST['postal_code'];}?>"/>
</td>
<td class="error" colspan="2">
<?php
if(isset($_POST['send_bulkform']) && $_POST['postalcode'] != preg_match("[A\-Za\-z][0\-9][A\-Za\-z] [0\-9][A\-Za\-z][0\-9]",$_POST['postal_code']) || isset($_POST['send_studentform']) && $_POST['postalcode'] != preg_match("[A\-Za\-z][0\-9][A\-Za\-z] [0\-9][A\-Za\-z][0\-9]",$_POST['postal_code']))
{
echo "Required, ex. A1A 1A1.";
}
elseif(isset($_POST['send_bulkform']) && $_POST['postalcode'] == null || isset($_POST['send_studentform']) && $_POST['postalcode'] == null)
{
echo "Required, ex. A1A 1A1.";
}
?>
</td>
</tr>
Прежде всего, 'preg_match()' и его коллеги требуют [разделителей] (http://php.net/manual/en/regexp.reference.delimiters.php). Во-вторых, нет необходимости скрывать тире в группах персонажей. Напишите '[A-Z]' вместо '[A \ -Z]'. –
BTW: Вероятно, не рекомендуется проверять почтовые коды вообще, так как существует [слишком много форматов, используемых во всем мире] (https://en.wikipedia.org/wiki/List_of_postal_codes). Некоторые страны даже используют несколько форматов. – feeela
Что это за регулярное выражение? Это позволит 'A',' -', 'Z',' a', '-' или' z'. Затем либо '0',' -', либо '9'. И т.д. – chris85