sccot Posted July 13, 2011 Share Posted July 13, 2011 Hey guys im making and order confirmation email send out, but i'm getting this syntax error with unexpected } on line 104. I think this is because loop 'for {' where i want to generate items ordered into the table. can anyone help me find out what is wrong or how can i add loop into the email message body. thanks <?php require_once 'library/config.php'; // if no order id defined in the session // redirect to main page if (!isset($_SESSION['orderId'])) { header('Location: ' . WEB_ROOT); exit; } $pageTitle = 'Checkout Completed Successfully'; require_once 'include/header.php'; require_once 'library/cart-functions.php'; // send notification email if ($shopConfig['sendOrderEmail'] == 'y') { $subject = "[New Order] " . $_SESSION['orderId']; $email = $shopConfig['email']; $message = "You have a new order. Check the order detail here \n http://" . $_SERVER['HTTP_HOST'] . WEB_ROOT . 'admin/order/index.php?view=detail&oid=' . $_SESSION['orderId'] ; mail($email, $subject, $message, "From: $email\r\nReturn-path: $email"); } $order_id = $_SESSION['orderId']; $sql = "SELECT od_email FROM tbl_order WHERE od_id = $order_id"; $result = dbQuery($sql); $row = dbFetchAssoc($result); extract($row); $status="Paid"; $sql = "UPDATE tbl_order SET od_status = '$status', od_last_update = NOW() WHERE od_id = $orderId"; $result = dbQuery($sql); $sql = "SELECT pd_name, pd_price, od_qty FROM tbl_order_item oi, tbl_product p WHERE oi.pd_id = p.pd_id and oi.od_id = $orderId ORDER BY od_id ASC"; $result = dbQuery($sql); $orderedItem = array(); while ($row = dbFetchAssoc($result)) { $orderedItem[] = $row; } // get order information $sql = "SELECT od_date, od_last_update, od_status, od_shipping_first_name, od_shipping_last_name, od_shipping_address1, od_shipping_address2, od_shipping_phone, od_shipping_state, od_shipping_city, od_shipping_postal_code, od_shipping_cost, od_payment_first_name, od_payment_last_name, od_payment_address1, od_payment_address2, od_payment_phone, od_payment_state, od_payment_city , od_payment_postal_code, od_memo FROM tbl_order WHERE od_id = $orderId"; $result = dbQuery($sql); extract(dbFetchAssoc($result)); $subject_c = "Your purchased items on our website"; $email_c = $od_email; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'Bcc: [email protected]' . "\r\n"; $message_c = "<p> </p> <table width=\"550\" border=\"1\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" class=\"detailTable\"> <tr> <td colspan=\"2\" align=\"center\" id=\"infoTableHeader\">Order Detail</td> </tr> <tr> <td width=\"150\" class=\"label\">Order Number</td> <td class=\"content\">" . $orderId . "</td> </tr> <tr> <td width=\"150\" class=\"label\">Order Date</td> <td class=\"content\">". $od_date . "</td> </tr> <tr> <td class=\"label\">Status</td> <td class=\"content\">" . $orderId ."></td> </tr> </table> <p> </p> <table width=\"550\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" class=\"detailTable\"> <tr id=\"infoTableHeader\"> <td colspan=\"3\">Ordered Item</td> </tr> <tr align=\"center\" class=\"label\"> <td>Item</td> <td>Unit Price</td> <td>Total</td> </tr>". $numItem = count($orderedItem); $subTotal = 0; for ($i = 0; $i < $numItem; $i++) { extract($orderedItem[$i]); $subTotal += $pd_price * $od_qty; "<tr class=\"content\"> <td>". $od_qty . " x " . $pd_name ."</td> <td align=\"right\">". displayAmount($pd_price). "</td> <td align=\"right\">". displayAmount($od_qty * $pd_price). "</td> </tr>". } ."</table>"; mail($email_c, $subject_c, $message_c, $headers); require_once 'include/top.php'; ?> <div class="main"> <table width="851"><tr><td valign="top" id="leftnav"> <ul> <li><a href="/eshop/">« eShop</a></li></ul></td><td> <p> </p><table width="500" border="0" align="center" cellpadding="1" cellspacing="0" class="cat"> <tr> <td align="left" valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> <p> </p> <h2>Thank you for shopping with us!</h2> <p>We will send the purchased item(s) right after your payment is completed. Your order number is: <b><?php echo $_SESSION['orderId']; ?></b>. Order confirmation email was sent to <b><?php echo $od_email; ?></b></p> <p> </p></td> </tr> </table></td> </tr> </table> <br> <br> </td><td valign="top" width="130" id="mcart"> <?php require_once 'include/miniCart.php'; ?></td></tr></table> <?php require_once 'include/footer.php'; unset($_SESSION['orderId']); ?> Link to comment https://forums.phpfreaks.com/topic/241929-syntax-parse-error/ Share on other sites More sharing options...
Cagecrawler Posted July 13, 2011 Share Posted July 13, 2011 You can't close a loop in the middle of the string. The for loop needs to look like this: for ($i = 0; $i < $numItem; $i++) { extract($orderedItem[$i]); $subTotal += $pd_price * $od_qty; $message_c += "<tr class=\"content\"> <td>". $od_qty . " x " . $pd_name ."</td> <td align=\"right\">". displayAmount($pd_price). "</td> <td align=\"right\">". displayAmount($od_qty * $pd_price). "</td> </tr>"; } $message_c += "</table>"; Link to comment https://forums.phpfreaks.com/topic/241929-syntax-parse-error/#findComment-1242433 Share on other sites More sharing options...
sccot Posted July 13, 2011 Author Share Posted July 13, 2011 Hi thanks for your answer but now in the email message body is just "0" and nothing else or is there any other way how to include processed "message. php" file into email message body? Link to comment https://forums.phpfreaks.com/topic/241929-syntax-parse-error/#findComment-1242434 Share on other sites More sharing options...
AbraCadaver Posted July 13, 2011 Share Posted July 13, 2011 Hi thanks for your answer but now in the email message body is just "0" and nothing else or is there any other way how to include processed "message. php" file into email message body? Because =+ is not a string operator. Try .= Link to comment https://forums.phpfreaks.com/topic/241929-syntax-parse-error/#findComment-1242457 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.