Дипломник | Привет всем. PHP я только изучаю, так что строго не судите  В общем я делаю интернет магазин. Все уже готово, только решил сделать так, что бы пользователю отправлялось письмо о том, что он заказал товар, и в самом письме указывались товары, их количество и общая сумма заказа. Сам процесс оформления заказа: 1) Посетитель переходит на сайт и выбирает товар. 2) Добавляет выбранный в корзину и нажимает кнопку "Оформить заказ". 3) После чего его перебрасывает на страницу order.php где он вводит свои данные и нажимает кнопку "Заказать". После чего, все данные что он ввел (name, s_name, address, post_index, email) передаются в БД, а ему выдается сообщение что заказ принят. И вот в последний пункт я хотел бы добавить возможность отправки письма. Погуглив, я нашел как это сделать, но на почту отправлялось письмо только с одним товаром, даже если я заказывал два, то отправлялся последний. И вид самого письма непонятный немного, как его подкоректировать? Вот, как выглядит сама страница оформления заказа _http://prntscr.com/17mcsn. А вот сам ее код:
PHP код: <h2 align="center">Оформление заказа</h2>
<?
if($_SESSION['cart'] && !isset($_POST['order']))
{
?>
<form action="index.php?view=order" method="post" id="cart-form">
<table id="mycart" align="center" cellspacing="0" cellpadding="0" border="0">
<tr>
<th>Товар</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Всего</th>
</tr>
<? foreach($_SESSION['cart'] as $id => $quantity):
$product = get_product($id);
?>
<tr>
<td align="center"><?=$product['title'];?></td>
<td align="center">$<?=number_format($product['price'],2);?></td>
<td align="center"><?=$quantity;?></td>
<td align="center">$<?=number_format($product['price'] * $quantity ,2);?></td>
</tr>
<?endforeach;?>
</table>
<p class="total" align="center">Общая сумма заказа: <span class="product-price"><?=number_format($_SESSION['total_price'],2);?> $</span></p>
<p align="center" style="color: #fff;">
Ваше Имя: <br />
<input type="text" name="name" /><br />
Ваша Фамилия: <br />
<input type="text" name="s_name" /><br />
Ваш адрес: <br />
<input type="text" name="address" /><br />
Почтовый индекс: <br />
<input type="text" name="post_index" /><br />
Ваш e-mail: <br />
<input type="text" name="email" /><br />
</p>
<p align="center"><input type="submit" name="order" value="Заказать" /></p>
</form>
<?
}
if($_SESSION['cart'] && isset($_POST['order']))
{
foreach($_POST as $ArrKey => $ArrStr)
{
$ArrKey = $_POST[$ArrKey];
}
$date = date('Y-m-d');
$time = date('H:i:s');
foreach($_SESSION['cart'] as $id => $quantity):
$product = get_product($id);
$query = mysql_query("INSERT INTO orders(name,s_name,address,post_index,email,date,time,product,prod_id,price,qty) VALUES ('$name','$s_name','$address','$post_index','$email','$date','$time','{$product['title']}','{$product['id']}','{$product['price']}','$quantity')");
endforeach;
unset($_SESSION['cart']); /* Очистка корзины после заказа */
// если была нажата кнопка "Отправить"
if($_POST['order']) {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменной $_POST['mess'] все аналогично
$title = substr(htmlspecialchars(trim($product['title'])), 0, 1000);
$price = substr(htmlspecialchars(trim($product['price'],2)), 0, 1000000);
$qty = substr(htmlspecialchars(trim($quantity)), 0, 1000);
$tprice = substr(htmlspecialchars(trim(number_format($product['price'] * $quantity ,2))), 0, 1000000);
// $to - кому отправляем
$to = $_POST['email'];
// $from - от кого
$from='vvarisov@yandex.ru';
// функция, которая отправляет наше письмо.
mail($to, $title, $price, $qty, $tprice);
mail($from, $title, $price, $qty, $tprice);
}
echo "<p align='center' style='color: #fff;'>Ваш заказ успешно принят и на Вашу електронную почту была отправлен! Спасибо за покупку!</p>";
}
?>
<h2 align="center">Оформление заказа</h2>
<?
if($_SESSION['cart'] && !isset($_POST['order']))
{
?>
<form action="index.php?view=order" method="post" id="cart-form">
<table id="mycart" align="center" cellspacing="0" cellpadding="0" border="0">
<tr>
<th>Товар</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Всего</th>
</tr>
<? foreach($_SESSION['cart'] as $id => $quantity):
$product = get_product($id);
?>
<tr>
<td align="center"><?=$product['title'];?></td>
<td align="center">$<?=number_format($product['price'],2);?></td>
<td align="center"><?=$quantity;?></td>
<td align="center">$<?=number_format($product['price'] * $quantity ,2);?></td>
</tr>
<?endforeach;?>
</table>
<p class="total" align="center">Общая сумма заказа: <span class="product-price"><?=number_format($_SESSION['total_price'],2);?> $</span></p>
<p align="center" style="color: #fff;">
Ваше Имя: <br />
<input type="text" name="name" /><br />
Ваша Фамилия: <br />
<input type="text" name="s_name" /><br />
Ваш адрес: <br />
<input type="text" name="address" /><br />
Почтовый индекс: <br />
<input type="text" name="post_index" /><br />
Ваш e-mail: <br />
<input type="text" name="email" /><br />
</p>
<p align="center"><input type="submit" name="order" value="Заказать" /></p>
</form>
<?
}
if($_SESSION['cart'] && isset($_POST['order']))
{
foreach($_POST as $ArrKey => $ArrStr)
{
$ArrKey = $_POST[$ArrKey];
}
$date = date('Y-m-d');
$time = date('H:i:s');
foreach($_SESSION['cart'] as $id => $quantity):
$product = get_product($id);
$query = mysql_query("INSERT INTO orders(name,s_name,address,post_index,email,date,time,product,prod_id,price,qty) VALUES ('$name','$s_name','$address','$post_index','$email','$date','$time','{$product['title']}','{$product['id']}','{$product['price']}','$quantity')");
endforeach;
unset($_SESSION['cart']); /* Очистка корзины после заказа */
// если была нажата кнопка "Отправить"
if($_POST['order']) {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменной $_POST['mess'] все аналогично
$title = substr(htmlspecialchars(trim($product['title'])), 0, 1000);
$price = substr(htmlspecialchars(trim($product['price'],2)), 0, 1000000);
$qty = substr(htmlspecialchars(trim($quantity)), 0, 1000);
$tprice = substr(htmlspecialchars(trim(number_format($product['price'] * $quantity ,2))), 0, 1000000);
// $to - кому отправляем
$to = $_POST['email'];
// $from - от кого
$from='vvarisov@yandex.ru';
// функция, которая отправляет наше письмо.
mail($to, $title, $price, $qty, $tprice);
mail($from, $title, $price, $qty, $tprice);
}
echo "<p align='center' style='color: #fff;'>Ваш заказ успешно принят и на Вашу електронную почту была отправлен! Спасибо за покупку!</p>";
}
?>
Ребята, очень надеюсь на вашу помощь :) |