2012-11-12 30 views
1

我想在我的sendmail.php中包含foreach循環的輸出+ echo $ total作爲變量$ order。有人能幫助我嗎?我有點卡住了。PHP包含在郵件變量中的foreach的輸出

我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>";} 
?> 
+1

線使用的東西,我只是回答了一個非常類似的問題: [使用一些PHP內容發送郵件] [1] [1]:http://stackoverflow.com/questions/13337970/confirmation-page-before-mailing-in-php/13338453#13338453 – emartel

回答

-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']; 
+0

我即將發佈相同的東西,你只是快一點。我只建議你在'$ order。= $ value'末尾修改'
'。「
」;'到'\ n' – Sean

+0

沒有必要複製代碼,這隻會在長時間因爲代碼被改變了!該代碼可以在另一個php文件中隔離,並且包含在ob_start和ob_end_clean調用之間 – emartel

+0

@emartel錯誤可隨時在代碼更改後出現。這只是一個相對簡單的問題的簡單解決方案。 – Stegrex

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);