1

我有一个非常基本的 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"(没有 "")...</p>

知道为什么会出现此错误消息吗?谢谢您的帮助。

4

2 回答 2

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.');
}
于 2013-11-09T16:14:16.043 回答
0

该消息意味着您的正则表达式中的字符 12 处存在错误。由于那是撇号(单引号),我猜你需要转义它。

于 2013-11-09T16:39:56.157 回答