2016-05-14 10 views
-1

danke für Ihre Hilfe im Voraus, noob hier.PHP/HTML - Echo ein Fehler in HTML Div, die ein anderes Echo in PHP hat?

Also, ich habe diesen Fehler Div einer Form.

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

Ich versuche, eine E-Mail mit PHP zu validieren, aber ich will sein Fehler abhängig von der Sprache durch den Benutzer ausgewählt ändern. Ich habe noch zwei PHP-Dateien mit Arrays mit dem übersetzten Text. Was ich versuche, ist, den Fehler zu wiederholen, der das Echo für die Array-Variable enthält, so dass es als mehrsprachiger Text im HTML interpretiert werden kann. Ich weiß, dass Sie ein Echo nicht wiedergeben können, aber ich brauche eine Abhilfe dafür. Hier ist der PHP-Teil.

<?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>'; 

}; 

}; 

?> 

Vielen Dank!

Antwort

1

anstelle des direkten Echos versuchen, es der Variablen zuzuweisen und dann die Variable zu echotieren.

<?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

Aw lol! Haha, das hat funktioniert! Ich habe es vorher versucht, aber stattdessen ist die ganze Array-Variable als Fehler aufgetaucht, ich weiß nicht wirklich, warum es jetzt funktioniert hat, aber es ist passiert. Danke Jack, du bist ein Mann. –

+0

Ihre Begrüßung;) –

+1

Raul. Sie sollten Ihren Array-Elementen keine Sonderzeichen hinzufügen. Wie in diesem Fall "EMAIL_INVÁLIDO". Sie könnten stattdessen 'EMAIL_INVALIDO' verwenden. Dies kann einige Kopfschmerzen verhindern. – Phiter

0

Folgendes sollte genügen:

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

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

}; 

Sie müssen (wenn Sie sie als Text behandelt werden tun, keine Variablen) keine Anführungszeichen um Variablen zu setzen und Sie arbeiteten bereits in <?PHP ?> Stichworte.

statt echo es nur später im Code:

<?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

Wie Sie sagen, kann man auch nichts ein Echo Echo, weil PHP-Server-Seite ist. Sie müssen Ihr Echo nach Ihnen jetzt den endgültigen Wert des Fehlers:

<?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; 
}; 

?>