sending mail()
Posted: Mon Apr 03, 2006 2:25 pm
Hi,
I've created an order confirmation script that not only displays the order someone has made but sends them an email of their order confirmation.
Here is the script:
The problem is that I do not receive an email.
Can anyone notice anything I have done wrong?
I've created an order confirmation script that not only displays the order someone has made but sends them an email of their order confirmation.
Here is the script:
Code: Select all
<?php
include"top_menu.php";
?>
<html>
<body>
<table width="760" border="0">
<tr><td>
<div align="center">
<table width="600" cellspacing="0">
<tr bgcolor="#0099CC"><td width="5"></td>
<td height="30">
<font size="2" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><strong>
Payment
</strong></font>
</td>
</tr>
<tr><td colspan="2" height="30"><hr noshade></td></tr>
<tr>
<td width="5"></td>
<td>
<font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">
1) Your order has been received and is awaiting payment.
<br><br>
2) To complete your order, please have your card details ready.
<br><br>
3) Your online
transaction will be processed by <a href="http://www.worldpay.com" target="_blank">
WorldPay Merchant Services</a>.
<br><br>
4) Please click 'Continue' to make your payment.
</strong></font>
</td>
</tr>
<tr>
<td align="center" colspan="2"><font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><br>
More about WorldPay: <a href="http://www.worldpay.com" target="_blank">Home</a>
| <a href="http://www.worldpay.com/about_us/index.php" target="_blank">About</a>
| <a href="http://www.worldpay.com/about_us/index.php?page=security" target="_blank">Security</a>
| <a href="http://www.worldpay.com/about_us/index.php?page=history" target="_blank">History</a>
</font></td>
</tr>
<tr><td colspan="2" height="30"><hr noshade></td></tr>
<?php
include"conn.inc.php";
//SET ALL VARIABLES NEED TO STORE IN ORDER_TABLE--------------------------
$customerid = $_REQUEST['cid'];
$deliveryid = $_REQUEST['del'];
$sessid = $_REQUEST['sess'];
$today = date("d-m-Y");
$order_total = $_REQUEST['totalsum'];
//------------------------------------------------------------------------
//STORE ORDER AND GET ORDER NUMBER FROM ID
$insert_details = "INSERT INTO product_order (
order_date, order_total, customer_id, del_id)
VALUES (
'$today',
'$order_total',
'$customerid',
'$deliveryid')";
$insert_order = mysql_query($insert_details)
or (mysql_error());
//SET ORDER NUMBER
$orderid = mysql_insert_id();
//GET ORDER DETAILS FOR EACH ITEM ORDERED (order_qty and product_id)
$query = "SELECT * FROM carttemp WHERE carttemp_sess = '$sessid'";
$results = mysql_query($query)
or die(mysql_error());
while ($row = mysql_fetch_array($results)) {
extract($row);
//ADD EACH ITEM TO ORDER DETAILS TABLE------------------------------------
$insert4 = "INSERT INTO order_details (
order_num, order_qty, product_id)
VALUES (
'$orderid',
'$carttemp_quan',
'$carttemp_prodnum')";
$insert_details4 = mysql_query($insert4)
or (mysql_error());
//GET CURRENT STOCK QTY FOR EACH ITEM------------------------------------
$get_query = "SELECT * FROM product WHERE product_id = '$carttemp_prodnum'";
$get_results = mysql_query($get_query)
or die(mysql_error());
while ($row = mysql_fetch_array($get_results)) {
$prodstockqty = $row['prod_stock_qty'];
}
//------------------------------------------------------------------------
//SET NEW STOCK QTY VARIABLE----------------------------------------------
$new_stock_qty = $prodstockqty - $carttemp_quan;
//UPDATE EACH PRODUCT'S STOCK QTY
$update = "UPDATE product
SET prod_stock_qty = '$new_stock_qty'
WHERE product_id = '$carttemp_prodnum'";
$update_results = mysql_query($update)
or die(mysql_error());
//------------------------------------------------------------------------
$total_sum = $_SESSION['total_sum'];
}
//END OF LOOP-------------------------------------------------------------
//EMPTY SHOPPING CART-----------------------------------------------------
$query_del = "DELETE FROM carttemp WHERE carttemp_sess = '$sessid'";
$delete = mysql_query($query_del);
//------------------------------------------------------------------------
//GET CUSTOMER DETAILS
$query = "SELECT * FROM customer WHERE customer_id = '$customerid'";
$results = mysql_query($query)
or die(mysql_error());
while ($row = mysql_fetch_array($results)) {
extract($row);
$first_name = $row['customer_first_name'];
$last_name = $row['customer_last_name'];
$door_no = $row['customer_door_no'];
$street = $row['customer_street'];
$town = $row['customer_town'];
$county = $row['customer_county'];
$postcode = $row['customer_postcode'];
$country = $row['customer_country'];
$telephone = $row['customer_tel'];
$email_add = $row['customer_email'];
}
?>
<form name="form1" method="POST" action="order_complete.php">
<input type="hidden" name="total_sum" value"<?php echo $total_sum; ?>">
<input type="hidden" name="first_name" value"<?php echo $first_name; ?>">
<input type="hidden" name="last_name" value"<?php echo $last_name; ?>">
<input type="hidden" name="door_no" value"<?php echo $door_no; ?>">
<input type="hidden" name="street" value"<?php echo $street; ?>">
<input type="hidden" name="town" value"<?php echo $town; ?>">
<input type="hidden" name="county" value"<?php echo $county; ?>">
<input type="hidden" name="postcode" value"<?php echo $postcode; ?>">
<input type="hidden" name="country" value"<?php echo $country; ?>">
<input type="hidden" name="telephone" value"<?php echo $telephone; ?>">
<input type="hidden" name="email_add" value"<?php echo $email_add; ?>">
<tr>
<td colspan="2" align="right">
<input type="submit" name="submit" value="Continue...">
</td>
</tr>
<tr><td height="25"></td></tr>
</form>
</table>
</body>
</html>
<?php
//SEND EMAIL TO CUSTOMER AND SELF
//recipients
$to = "<" . $email_add . ">";
//subject
$subject = "Order confirmation";
//message
//top of message
$message = "
<html>
<head>
<title>Order Confirmation</title>
</head>
<body>
<table align=\"center\" width=\"600\" border=\"0\">
<tr bgcolor=\"#0099CC\">
<td height=\"20\" align=\"center\"><font size=\"2\" color=\"#FFFFFF\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>
Order Summary<br>
</strong></font></td></tr>
<tr><td><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">
Order date: ";
$message .= $today;
$message .= "
<br>
Order number: ";
$message .= $orderid;
$message .= " </font></td></tr></table>
<table align=\"center\" width=\"600\" border=\"0\">
<tr>
<td colspan=\"6\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">
<p>Bill to:<br>";
$message .= $first_name;
$message .= " ";
$message .= $last_name;
$message .= "<br>";
$message .= $door_no . " " . $street;
$message .= "<br>";
$message .= $town;
$message .= "<br>";
$message .= $county . ", " . $postcode;
$message .= "<br>";
$message .= $country;
$message .= "</p>
</font></td>
</tr><tr><td colspan=\"6\"><hr width=\"600px\"></td></tr>";
//USE DELIVERY ID TO GET CHOSEN DELIVERY DETAILS
$del_query = "SELECT * FROM delivery WHERE del_id = '$deliveryid'";
$del_results = mysql_query($del_query)
or die(mysql_error());
while ($row = mysql_fetch_array($del_results)) {
$destination = $row['del_destination'];
$duration = $row['del_duration'];
$price = $row['del_price'];
$region = $row['del_region'];
}
$message .= "<tr><td width=\"70\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">Delivery:</font></td><td width=\"300\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
$message .= $destination;
$message .= "</font></td>";
$message .= "<td width=\"100\" align=\"center\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
$message .= $duration;
$message .= "</font></td>";
$message .= "<td align=\"right\" width=\"70\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
$message .= $region;
$message .= "</font></td>";
$message .= "<td align=\"right\" width=\"50\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
$message .= $price;
$message .= "</font></td><td width=\"5\"></td</tr>
<tr><td colspan=\"6\"><hr width=\"600px\"></td></tr>
</table>
<table align=\"center\" width=\"600\" cellspacing=\"0\" cellpadding=\"5\">
<tr bgcolor=\"#0099CC\">
<td width=\"5\"></td>
<td width=\"290\"><font size=\"2\" color=\"#FFFFFF\" face=\"Verdana, Arial, Helvetica, sans-serif\">Item</front></td>
<td align=\"center\" width=\"100\"><font size=\"2\" color=\"#FFFFFF\" face=\"Verdana, Arial, Helvetica, sans-serif\">Qty</font></td>
<td align=\"right\" width=\"100\"><font size=\"2\" color=\"#FFFFFF\" face=\"Verdana, Arial, Helvetica, sans-serif\">Price</font></td>
<td align=\"right\" width=\"100\"><font size=\"2\" color=\"#FFFFFF\" face=\"Verdana, Arial, Helvetica, sans-serif\">Total</font></td>
<td width=\"5\"></td>
</tr>
</table>
<table align=\"center\" width=\"600\" cellspacing=\"0\" cellpadding=\"5\">";
//--INSERT THE ORDER CONTENT INTO MESSAGE FIELD---------------------------
//GET THE ORDER NUMBER AND INITIATE THE LOOP TO GET ORDER CONTENT
$query = "SELECT * FROM order_details WHERE order_num = '$orderid'";
$results = mysql_query($query)
or die(mysql_error());
while ($row = mysql_fetch_array($results)) {
extract($row);
$prodid = $row['product_id'];
$orderqty = $row['order_qty'];
//USE PRODUCT ID TO GET PRODUCT DETAILS
$prod_query = "SELECT * FROM product WHERE product_id = '$prodid'";
$prod_results = mysql_query($prod_query)
or die(mysql_error());
while ($row = mysql_fetch_array($prod_results)) {
$product_name = $row['prod_name'];
$product_code = $row['prod_code'];
$product_price = $row['prod_unit_price'];
}
//INSERT ORDER CONTENT INTO MESSAGE
$message .= "<tr><td width=\"5\"></td><td width=\"290\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
$message .= $product_name;
$message .= "</font></td>";
$message .= "<td width=\"100\" align=\"center\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
$message .= $orderqty;
$message .= "</font></td>";
$message .= "<td align=\"right\" width=\"100\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
$message .= $product_price;
$message .= "</font></td>";
$message .= "<td align=\"right\" width=\"100\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
//GET UNIT PRICE * QTY
$extprice = number_format($orderqty * $product_price, 2);
$message .= $extprice;
$message .= "</font></td><td width=\"5\"></td>";
$message .= "</tr>";
$totalexdel = $totalexdel + $extprice;
}
$subtotal = number_format($totalexdel, 2);
//------------------------------------------------------------------------
$message .= "
</table><table width=\"600\" cellspacing=\"0\" cellpadding=\"5\">
<tr><td align=\"center\" width=\"600\" colspan=\"6\"><hr width=\"600px\"></td></tr>
<tr>
<td width=\"495\" align=\"right\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>
Sub total:
</strong></font></td>
<td width=\"100\" align=\"right\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>";
$message .= "£" . $subtotal;
$message .= "</strong></font></td>";
$message .= "<td width=\"5\"></td>
</tr>";
$message .= "<tr>
<td width=\"495\" align=\"right\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>
Total (inc del):
</strong></font></td>
<td width=\"100\" align=\"right\"><font size=\"2\" color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>";
$message .= "£" . $order_total;
$message .= "</strong></font></td>";
$message .= "<td width=\"5\"></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
/*headers*/
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: <nick@aceconcepts.co.uk>\r\n";
$headers .= "Cc: <nick@aceconcepts.co.uk>\r\n";
$headers .= "X-Mailer: PHP / ".phpversion()."\r\n";
/*mail confirmation*/
mail($to, $subject, $message, $headers);
//DISPLAY THE ORDER AND GIVE THEM AN ORDER NUMBER
echo $message;
?>Can anyone notice anything I have done wrong?