我试图从数据库中提取名字,姓氏和电子邮件,然后尝试使用PHP输入名字姓氏。每当我尝试回显数据时,我只会获得名字姓氏。电子邮件和<>没有出现?任何人都知道如何回应。
以下是代码:
while($row = mysqli_fetch_assoc($res)){
echo $row['firstname'] . " " . $row['lastname'] . " <" . $row['email'] . ">,";
}
答案 0 :(得分: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));