2017-02-18 1 views
-1

Ich versuche, einige PHP-Code in der Betreffzeile meines Mailformulars zu verwenden. Der Code, den ich verwende, ist wie folgt:PHP-Code in der E-Mail-Formular Betreffzeile

$email_subject .= $words[$lang]["CONTACT_EMIL_SUBJECT"]; 

Das Formular funktioniert gut, aber ich erhalte keine E-Mail. Wenn ich nur den folgenden Text einfüge: $ email_subject = "Nachricht von meinem Mailformular"; Dann erhalte ich die E-Mail.

Also kann mir jemand sagen, dass das nicht funktioniert?

Dieser Code: $ words [$ lang] ["CONTACT_EMIL_SUBJECT" erhält einen Wert aus einer Datei, die oben auf der Seite enthalten ist. Und ich verwende die gleiche Art von Code an anderen Stellen auf meiner Seite und das funktioniert gut. Ich benutze dies, um meine Website zu übersetzen. Wenn also ein Benutzer meine Site mit englischer Übersetzung anschaut, werden die Formularwerte in der empfangenen E-Mail auch in Englisch angezeigt, und ebenso, wenn ein Benutzer schwedische Übersetzung verwendet Die Werte in der E-Mail werden auf Schwedisch sein.

Vielen Dank.

+0

Was bedeutet 'echo $ words [$ lang] ["CONTACT_EMIL_SUBJECT"]; ' – Barmar

Antwort

0

Sie können eine Fallback-Option verwenden, indem Sie prüfen, ob der Wert gefunden werden kann. Wenn nicht, zeigen Sie eine Alternative an.

<?php 
$to = "[email protected]"; 
$subject = isset($words[$lang]['CONTACT_EMAIL_SUBJECT']) ? $words[$lang]['CONTACT_EMAIL_SUBJECT'] : "Fallback subject, couldn't find correct lang."; 
$message = isset($_POST['message']) ? $_POST['message'] : "No message"; 

if (mail($to, $subject, $message)) { 
    echo "Thanks, your message was sent!"; 
} else { 
    echo "Oops, we hit an error. 
} 
?> 
+0

Wo siehst du 'echo' in der Frage? – Barmar

+0

@Barmar - mein Schlechter! Nicht sicher was ich sah. – huzi8t9

+0

Vielen Dank das funktioniert fast, auf Englisch Übersetzung funktioniert es, aber ich habe Probleme mit der schwedischen Übersetzung. Mein Betreff ist wie folgt: Schwedisch: Nytt meddelande von FCAB-Hemsida. Deutsch: Neue Nachricht von der FCAB-Homepage. In der schwedischen Übersetzung gibt es einen Buchstaben Å, wenn ich dieses O ändere, dann funktioniert es, also wie kann ich Echo utf8_encode zum Code hinzufügen? Vielen Dank. –

0

haben Sie global $words; deklariert?

Check this out On Idee der lokalen vs globale Variable http://php.net/manual/en/language.variables.scope.php

ex:

include "/langs/".$lang."/words.php"; 
//this you can make a folder langs with multiple languages folder defined by $lang 
//make a words.php in the $lang folder. Some Examples are /langs/en_us/words.php or /langs/en_gb/words.php for great britan and so on 
//inside words.php you add 
//$words[$lang]["CONTACT_EMIL_SUBJECT"] = "Email Subject"; for english 
//$words[$lang]["CONTACT_EMIL_SUBJECT"] = "Kontakt E-Mail Betreff"; for german 
//and so on. 
//adding include at top of page is a global variable so when you add to your code 
global $words; //this says to look for the variable when you added it to the file in include. 
echo $words[$lang]["CONTACT_EMIL_SUBJECT"]; 

So ein Voll Beispiel:

<?PHP 
    include "/langs/".$lang."/words.php"; //include your language 
    function yourfunction(){ 
     //some code.... 
     global $words; //finds the $words global this can be used in anyplace that includes words.php 
     $email_subject .= $words[$lang]["CONTACT_EMIL_SUBJECT"]; 
     echo $email_subject; 
    } 
+0

Ja, aber ich verstehe nicht so viel von dieser Seite. Wie würde mein Code mit dem Global darin aussehen? Vielen Dank. –

+0

Siehe Bearbeiten, um ein Beispiel hinzuzufügen – DarkSideKillaz

Verwandte Themen