簡體   English   中英

編譯失敗:字符類在偏移量12處范圍混亂

[英]Compilation failed: range out of order in character class at offset 12

我有一個非常基本的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”(不帶“”),應該接受…

知道為什么會出現此錯誤消息嗎? 謝謝您的幫助。

您必須在此處關閉大括號並刪除|| 運營商。

也是die()而不是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.');
}

該消息表示您的正則表達式中的字符12處有錯誤。 由於這是撇號(單引號),所以我想您需要將其轉義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM