1

foreach ループ + echo $total の出力を変数 $order として sendmail.php に含めたいと考えています。誰か助けてくれませんか?私は少し立ち往生しています。

私の sendmail.php:

<?php
if(!isset($_SESSION)) {
     session_start();
}

$to = $_SESSION['email'];
$firstname = $_SESSION['firstname'] ;
$lastname = $_SESSION['lastname'] ;
$email = $_SESSION['email'] ;
$addressline1 = $_SESSION['addressline1'] ;
$towncity = $_SESSION['towncity'] ;
$postcode = $_SESSION['postcode'] ;

foreach ($_SESSION['invoice'] as $value) { //needs to = $order
    echo $value."<br>";} //needs to = $order
echo "Total: $".$_SESSION['total']; //needs to = $order

//set subject
$subject = "Crystal Fusion - New Order";

//body of the e-mail
$body = "New Order Received:\n\n\n\n
    From: $firstname $lastname\n
    Email: $email\n
    Address: $addressline1\n
    Town/City: $towncity\n
    Postcode: $postcode\n
    Order: $order"; //needs to = foreach loop above

$sent = mail($to, $subject, $body);

if($sent)
    {echo "<script language=javascript>window.location = 'mail_succeed.php';</script>";}
else
    {echo "<script language=javascript>window.location = 'mail_fail.php';</script>";}
?>
4

2 に答える 2

0

解決策は、次のようなものを使用することです。

ob_start(); 

// Add your output
foreach ($_SESSION['invoice'] as $value) { //needs to = $order
    echo $value."<br>";} //needs to = $order
echo "Total: $".$_SESSION['total']; //needs to = $order
// if you need your logic at multiple places, consider using a separate php file and including it here
// ...

$body=ob_get_contents();
ob_end_clean(); 
mail($to, $subject, $body);
于 2012-11-12T06:32:40.657 に答える
-1

foreach ループを次のように変更してはどうでしょうか。

$order = '';
foreach ($_SESSION['invoice'] as $value) { //needs to = $order
    echo $value."<br>"; //needs to = $order
    $order .= $value."\n";
}
echo "Total: $".$_SESSION['total']; //needs to = $order
$order .= "Total: $".$_SESSION['total'];
于 2012-11-12T06:06:46.790 に答える