我有一个非常基本的HTML表单,文本框定义为
<li id="li_1" >
<label class="description" for="element_1">O teu nome </label>
<span>
<input id="element_1_1" name= "element_1_1" class="element text" pattern="[a-z0-9. -]+" maxlength="255" size="8" value=""/>
<label>Primeiro</label>
</span>
<span>
<input id="element_1_2" name= "element_1_2" class="element text" pattern="[a-z0-9. -]+" maxlength="255" size="14" value=""/>
<label>Apelido</label>
</span>
使用
在名为email_send_pt.php的php文件中验证此输入// validation expected data exists
if(!isset($_POST['element_1_1']) ||
!isset($_POST['element_1_2']) ||
!isset($_POST['element_2']) ||{
died('Lamentamos, mas constam erros no seu registo.');
}
$first_name = $_POST['element_1_1']; // required
$second_name = $_POST['element_1_2']; // required
$email = $_POST['element_2']; // required
$error_message = "";
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name) ||
!preg_match($string_exp,$second_name)) {
$error_message .= 'O nome que preencheu não parece ser válido.<br />';
}
我得到一个常量“编译失败:第45行的email_send_pt.php中第12位的字符类中的范围乱序”
第45行是“if(!preg_match($ string_exp,$ first_name)||”作为输入我使用“teu”(没有“”)应该被接受...
知道为什么会出现此错误消息? 谢谢你的帮助。
答案 0 :(得分:0)
您必须在此处关闭大括号,然后移除 ||
运算符。
它也是die()
而不是died()
died('Lamentamos, mas constam erros no seu registo.');
if(!isset($_POST['element_1_1']) ||
!isset($_POST['element_1_2']) ||
!isset($_POST['element_2'])){
die('Lamentamos, mas constam erros no seu registo.');
}
答案 1 :(得分:0)
该消息表示正则表达式中的字符12处出现错误。由于这是撇号(单引号),我的猜测是你需要逃避它。