2013-12-19 39 views
0

我有以下。我試着通過一個電子郵件地址發送數據的表格,但是這個代碼不工作我得到以下錯誤:php表單被髮送到電子郵件沒有產生正確的輸出?

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 

下面是處理代碼:

<?php 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n"; 
$headers .= "From: Sales Rep <[email protected]>\r\n"; 
$subject = 'Email report'; 

$to = '[email protected]'; 
$subject = "Web Contact Data"; 




$body = " 

<html> 
<head> 
<title>HTML email</title> 
</head> 
<body> 
<p>This email contains HTML Tags!</p> 
<table border='1'> 
    <thead> 
     <tr> 
<?php 

    if (!empty($_POST)) { 

    echo '<tbody>'; 
    foreach($_POST['itemCode'] as $row => $item) { 
    echo'<tr>'; 
    echo '<td>' . htmlspecialchars($_POST['itemCode'][$row]) . "" . "</td>"; 
    echo '<td>' . htmlspecialchars($_POST['itemDesc'][$row]) . "" . "</td>"; 
    echo '<td>' . htmlspecialchars($_POST['itemQty'][$row]) . "" . "</td>"; 
    echo '<td>' . '&#8364;' . htmlspecialchars($_POST['itemPrice'][$row]) . "" . "</td> "; 
    echo '<td>' . '&#8364;' . htmlspecialchars($_POST['itemLineTotal'][$row]) . "" . "</td>"; 
    echo'<tr>'; 


} 
echo '</tbody>'; 

     } 

    ?> 
     </tr> 
    </thead> 
</table> 
</body> 
</html> 
"; 




$send = mail($to, $subject, $body, $headers); 
if($send){ 
    // header("Location:index.php"); 
    } else { 
     print "We encountered an error sending your mail, please try again"; 
    } 
?> 

可能有人請指教?今天我真的需要這個工作。請請人幫忙。

+0

一個'一個變量中foreach'構建?你是認真的嗎 ? –

+0

wtf? ''內$ body =「」?你重寫第一個主題。 – q0re

+0

StackOverflow上的語法突出顯示了'$ body ='語句的明確問題。你需要整理出來。 –

回答

2

這樣做:

$body = " 

<html> 
<head> 
<title>HTML email</title> 
</head> 
<body> 
<p>This email contains HTML Tags!</p> 
<table border='1'> 
    <thead> 
     <tr>"; 

    if (!empty($_POST)) { 

    $body .= '<tbody>'; 
    foreach($_POST['itemCode'] as $row => $item) { 
    $body .= '<tr>'; 
    $body .= '<td>' . htmlspecialchars($_POST['itemCode'][$row]) . "" . "</td>"; 
    $body .= '<td>' . htmlspecialchars($_POST['itemDesc'][$row]) . "" . "</td>"; 
    $body .= '<td>' . htmlspecialchars($_POST['itemQty'][$row]) . "" . "</td>"; 
    $body .= '<td>' . '&#8364;' . htmlspecialchars($_POST['itemPrice'][$row]) . "" . "</td> "; 
    $body .= '<td>' . '&#8364;' . htmlspecialchars($_POST['itemLineTotal'][$row]) . "" . "</td>"; 
    $body .='<tr>'; 


} 
$body .= '</tbody>'; 

     } 

$body .= "</tr> 
    </thead> 
</table> 
</body> 
</html> 
"; 
+0

評論來自downvoter? – q0re

+0

您在區塊中使用了<?php ..這又是語法錯誤。 –

+0

未能看到;)我修正了它。 – q0re

0

您正在使用在$體中的字符串<?php ?>標籤。您應該從字符串外部的這些標記之間移動代碼並進行連接。

+0

請嘗試給代碼塊提供解決方案.. –

0

試試這個: - 您使用的foreach內部回聲

<?php 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n"; 
$headers .= "From: Sales Rep <[email protected]>\r\n"; 
$subject = 'Email report'; 

$to = '[email protected]'; 
$subject = "Web Contact Data"; 

$body = "<html><head> 
<title>HTML email</title> 
</head> 
<body> 
<p>This email contains HTML Tags!</p> 
<table border='1'> 
    <thead> 
     <tr>"; 
if (!empty($_POST)) { 
    $body .= "<tbody>"; 
    foreach ($_POST['itemCode'] as $row => $item) { 
     $body .= '<tr > '; 
     $body .= '<td>' . htmlspecialchars($_POST['itemCode'][$row]) . "" . "</td>"; 
     $body .= '<td>' . htmlspecialchars($_POST['itemDesc'][$row]) . "" . "</td>"; 
     $body .= '<td>' . htmlspecialchars($_POST['itemQty'][$row]) . "" . "</td>"; 
     $body .= '<td>' . '&#8364;' . htmlspecialchars($_POST['itemPrice'][$row]) . "" . "</td> "; 
     $body .= '<td>' . '&#8364;' . htmlspecialchars($_POST['itemLineTotal'][$row]) . "" . "</td>"; 
     $body .= '<tr > '; 
    } 
    $body .= '</tbody>'; 
} 
$body .= '</tr></thead></table></body></html>'; 

$send = mail($to, $subject, $body, $headers); 
if ($send) { 
    // header("Location:index.php"); 
} else { 
    print "We encountered an error sending your mail, please try again"; 
} 
?> 
相關問題