2016-05-14 24 views
-1

感謝您的幫助提前,noob在這裏。PHP/HTML - 在PHP中有另一個回聲的html div中發生錯誤?

所以,我有這種形式的錯誤div。

<div><?php echo $error; ?></div> 

我試圖驗證電子郵件,使用PHP,但我想它的錯誤,取決於用戶選擇的語言的改變。我有另外兩個PHP文件與數組與翻譯文本。我想要做的是回顯包含數組變量的回聲的錯誤,以便它可以解釋爲HTML中的多語言文本。我知道你不能回顯回聲,但我需要一個解決方法。這是PHP的一部分。

<?php 

$error = ''; 

if ($_POST) { 

if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL) === false) { 

    $error .= '<?php echo $lang["EMAIL_INVÁLIDO"]; ?>'; 

}; 

if ($error != "") { 

    $error = '<p>' . $error . '</p>'; 

}; 

}; 

?> 

謝謝!

回答

1

而不是直接回聲,嘗試將其分配給變量,然後回顯變量。

<?php 
$error = ''; 
if ($_POST) { 
    if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL) === false) { 
     $error .= $lang["EMAIL_INVÁLIDO"]; 
    }; 
    if ($error != "") { 
     $error = '<p>' . $error . '</p>'; 
    }; 
}; 
?> 
+0

哇哦!哈哈,這工作!我之前嘗試過,但是整個數組變量顯示爲錯誤,我不知道它爲什麼現在起作用,但它確實如此。謝謝傑克,你是達人。 –

+0

歡迎;) –

+1

勞爾。 YOu不應該添加特殊字符到您的數組項目。就像在這種情況下一樣,「EMAIL_INVÁLIDO」。您可以改爲使用EMAIL_INVALIDO。這可以防止一些頭痛。 – Phiter

0

以下就足夠了:

if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL) === false) { 

    $error .= $lang["EMAIL_INVÁLIDO"]; 

}; 

你並不需要把周圍的變量引號(如果你這樣做,他們將被視爲文本,而不是變量),你已經中<?PHP ?>工作標籤。

,而不是後來才呼應它的代碼:

<?php 

$error = ''; 
if ($_POST) { 
if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL) === false) { 
$error .= $lang["EMAIL_INVÁLIDO"]; 
} 
if ($error != "") { 
    echo '<p>' . $error . '</p>'; 
} 

} 
?> 
0

正如你所說,你不容回聲回聲,因爲PHP是服務器端。你必須把你的回聲後,你現在的錯誤的最終值:

<?php 

$error = ''; 

if ($_POST) { 

if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL) === false) { 

    $error .= '$lang["EMAIL_INVÁLIDO"]'; 

}; 

if ($error != "") { 

    $error = '<p>' . $error . '</p>'; 

}; 

echo $error; 
}; 

?>