你的代碼工作正常,但<
和>
字符形成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));
謝謝你的所有幫助。我發現ascii代碼爲< and the > –
我嘗試了你的建議與htmlspecialchars但郵件功能不會讓我發送。我試過在我的本地服務器上,它工作得很好。我正在使用godaddy服務器 –
這很正常。 'htmlspecialchars'僅用於幫助您在屏幕上顯示值。 用它可視化地確保你已經對字符串做了正確的事情,但不要在'mail'函數中使用它。 –