这是我试图在向管理员“发送”购物车时尝试使用的方法。这可能是一种非正统的方法,请任何建议都非常受欢迎。
此信息来自会话以及单独的脚本,该脚本运行良好。它显示购物车内容,然后我尝试通过电子邮件发送以及一些个人信息:
<?php foreach ($quotes as $quote): ?>
<tr>
<td class="quoteTdL"><h3><?php echo htmlspecialchars($quote['name'], ENT_QUOTES,'UTF-8'); ?></h3></td>
<td class="quoteTdR"><p><?php echo htmlspecialchars($quote['text'], ENT_QUOTES,'UTF-8'); ?></p></td>
</tr>
<?php endforeach; ?>
基本上我想在这个减少的邮件脚本中包含这些信息:
//send email
$to = "";
$fname = $_REQUEST['fname'] ;
$sname = $_REQUEST['sname'] ;
$email = $_REQUEST['email'] ;
$pnum = $_REQUEST['pnum'] ;
$mnum = $_REQUEST['mnum'] ;
$content = $_REQUEST['content'] ;
$subject = 'Email from SAiGE Longlife website';
$msg = '
<html>
<head>
<title>SAiGE Longlife Decking enquiry</title>
</head>
<body>
<table width="600" border="0" align="center" cellpadding="10">
<tr>
<td colspan="2" align="center" bgcolor="#FF9933" style="font: 18px Arial,Georgia,Serif; color:#fff;">SAiGE Longlife Decking enquiry</td>
</tr>
<tr>
<td width="200" bgcolor="#CCCCCC" style="font: 18px Arial,Georgia,Serif; color:#fff;">Name:</td>
<td width="400" bgcolor="#FF9933" style="font: 18px Arial,Georgia,Serif; color:#000;">';
$msg .=$fname;
$msg .=' ';
$msg .=$sname;
$msg .='
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC" style="font: 18px Arial,Georgia,Serif; color:#fff;">E-mail</td>
<td bgcolor="#FF9933" style="font: 18px Arial,Georgia,Serif; color:#000;">';
$msg .=$email;
$msg .='
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC" style="font: 18px Arial,Georgia,Serif; color:#fff;">Phone numbers:</td>
<td bgcolor="#FF9933" style="font: 18px Arial,Georgia,Serif; color:#000;">';
$msg .=$pnum;
$msg .='
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC"> </td>
<td bgcolor="#FF9933" style="font: 18px Arial,Georgia,Serif; color:#000;">';
$msg .=$mnum;
$msg .='
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC" style="font: 18px Arial,Georgia,Serif; color:#fff;">Message:</td>
</tr>
<tr>
<td colspan="2" bgcolor="#FF9933" style="font: 18px Arial,Georgia,Serif; color:#000;">';
$msg .=$content;
$msg .=$cartHtml;
$msg .='
</td>
</tr>
</table>
</body>
</html>
';
我尝试过破坏和整合事物的一面,但没有运气,并花了很长时间在它上面!
是否可以先将循环输出为变量然后包含或者这是不必要的?
所有帮助将不胜感激。
非常感谢,
汤姆
答案 0 :(得分:1)
附上快速示例。
foreach ($quotes as $quote):
$name = htmlspecialchars($quote['name'], ENT_QUOTES,'UTF-8');
$text = htmlspecialchars($quote['text'], ENT_QUOTES,'UTF-8');
$msg .= <<<EOS
<tr>
<td class="quoteTdL"><h3>{$name}</h3></td>
<td class="quoteTdR"><p>{$text}</p></td>
</tr>
EOS;
endforeach;
// -- The output has now been added to $msg.
答案 1 :(得分:0)
是的,可以先输出循环。您需要调用输出缓冲函数:
ob_start();
echo "Some output here";
$out = ob_get_clean();
$ out变量将包含您需要的输出
答案 2 :(得分:0)
对于爱情和金钱,我无法让ob_start解决方案发挥作用。在发布这个问题之前我曾多次尝试过。我能想象的是,发布到另一个页面会清除缓冲区,因此没有数据可以回显吗?
这是我用于邮件的最终代码。
信息: “; $ msg。= $ content;
foreach ($quotes as $quote):
$name = htmlspecialchars($quote['name'], ENT_QUOTES,'UTF-8');
$text = htmlspecialchars($quote['text'], ENT_QUOTES,'UTF-8');
$msg .= '
<tr>
<td class="quoteTdL"><h3>';
$msg .= $name;
$msg .= '
</h3></td>
<td class="quoteTdR"><p>';
$msg .=$text;
$msg .= '</p></td>
</tr>';
endforeach;
$msg .='
</td>
</tr>
希望这有帮助,
汤姆