2017-02-18 72 views
-1

我試圖在郵件表單的主題行中使用一些php代碼。我使用的代碼如下:電子郵件形式的主題行中的PHP代碼

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

表單工作正常,但我沒有收到任何電子郵件。 如果我只放入這樣的文本:$ email_subject =「來自我的郵件表單的消息」; 然後我收到電子郵件。

因此,任何人都可以告訴我,這是行不通的?

此代碼:$ words [$ lang] [「CONTACT_EMIL_SUBJECT」正從包含在頁面頂部的文件獲取值。我在我的頁面上的其他地方使用相同類型的代碼,並且工作正常。我正在使用它來翻譯我的網站,因此如果用戶使用英文翻譯查看我的網站,那麼表單值也將在我收到的電子郵件中以英文顯示,而且如果用戶使用瑞典語翻譯則明智電子郵件中的值將以瑞典語顯示。

謝謝。

+0

什麼'回聲$字[$ LANG] [「CONTACT_EMIL_SUBJECT」];' – Barmar

回答

0

您可以通過檢查是否可以找到該值來使用回退選項。如果不是,則顯示替代方案。

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

在問題中你看到'echo'的位置? – Barmar

+0

@Barmar - 我的不好!不知道我看到了什麼。 – huzi8t9

+0

謝謝你,這幾乎成功,在英文翻譯它的作品,但我有瑞典語翻譯的問題。我的主題文本如下:瑞典語:Nytt meddelande從FCAB-Hemsida。英語:FCAB主頁的新消息。在瑞典語翻譯中有一個字母Å,如果我改變這個O然後它可以工作,那麼我怎樣才能將echo utf8_encode包含到代碼中呢?謝謝。 –

0

您是否聲明瞭global $words;

檢查了這一點對當地理念VS全局變量 http://php.net/manual/en/language.variables.scope.php

例如:

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"]; 

所以,一個完整的例子:

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

是的,但我不明白那麼多的頁面。我的代碼如何在全局中看起來像?謝謝。 –

+0

請參閱編輯以包含示例 – DarkSideKillaz