2015-11-05 76 views
0

我試圖從數據庫中拉出名字,姓氏和電子郵件,並嘗試將其放入Firstname姓氏中,並使用PHP。每次我嘗試回顯數據時,我只能得到名字姓氏。電子郵件和<>不顯示?任何人都知道我能如何迴應。嘗試在<>中封裝電子郵件

下面的代碼:

while($row = mysqli_fetch_assoc($res)){ 
    echo  $row['firstname'] . " " . $row['lastname'] . " <" . $row['email'] . ">,"; 
} 

回答

0

你的代碼工作正常,但<>字符形成HTML標籤,這就是爲什麼你看不到郵件。

如果你看看你的回聲的源代碼,你會看到<mail>出現。


你也可以這樣做:

while($row = mysqli_fetch_assoc($res)){ 
    echo  htmlspecialchars($row['firstname'] . " " . $row['lastname'] . " <" . $row['email'] . ">,"); 
} 

htmlspecialchars將改變<>自己的HTML代碼,因此他們將是可見的,即使你不看來源。


有用的功能已經是這一個:

// Echoes the string in a HTML friendly way 
function echoHTML($str) 
{ 
    echo htmlspecialchars($str); 
} 

while($row = mysqli_fetch_assoc($res)){ 
    echoHTML($row['firstname'] . " " . $row['lastname'] . " <" . $row['email'] . ">,"); 
} 

PS:如果你想連接的電子郵件不會忽略小心最後一個逗號,你將不得不在尾,郵件列表的末尾。以下是如何避免它:

$adresses = []; 
while($row = mysqli_fetch_assoc($res)) 
{ 
    // No more "," here 
    $adresses[] = $row['firstname'] . " " . $row['lastname'] . " <" . $row['email'] . ">"; 
} 

echoHTML(implode(', ', $adresses)); 
+0

謝謝你的所有幫助。我發現ascii代碼爲< and the > –

+0

我嘗試了你的建議與htmlspecialchars但郵件功能不會讓我發送。我試過在我的本地服務器上,它工作得很好。我正在使用godaddy服務器 –

+0

這很正常。 'htmlspecialchars'僅用於幫助您在屏幕上顯示值。 用它可視化地確保你已經對字符串做了正確的事情,但不要在'mail'函數中使用它。 –

相關問題