【发布时间】:2014-10-24 14:35:16
【问题描述】:
我想请你帮忙。我正在使用简单的时间段预订日历,一切正常(详细信息已正确传输到 msql 数据库),但我无法将所有表单详细信息发送到我的电子邮件和客户电子邮件以进行确认。
我只能发送前任。地址信息或姓名信息,但不能同时发送,我也不能发送所有详细信息。你能帮我么。非常感谢你们任何人的帮助!
book_slots.php:
<?php
include('php/connect.php');
include('new.php');
if(isset($_POST['slots_booked'])) $slots_booked = mysqli_real_escape_string($link, $_POST['slots_booked']);
if(isset($_POST['name'])) $name = mysqli_real_escape_string($link, $_POST['name']);
if(isset($_POST['address'])) $address = mysqli_real_escape_string($link, $_POST['address']);
if(isset($_POST['email'])) $email = mysqli_real_escape_string($link, $_POST['email']);
if(isset($_POST['phone'])) $phone = mysqli_real_escape_string($link, $_POST['phone']);
if(isset($_POST['booking_date'])) $booking_date = mysqli_real_escape_string($link, $_POST['booking_date']);
if(isset($_POST['cost_per_slot'])) $cost_per_slot = mysqli_real_escape_string($link, $_POST['cost_per_slot']);
$booking_array = array(
"slots_booked" => $slots_booked,
"booking_date" => $booking_date,
"cost_per_slot" => number_format($cost_per_slot, 2),
"name" => $name,
"address" => $address,
"email" => $email,
"phone" => $phone
);
$explode = explode('|', $slots_booked);
foreach($explode as $slot) {
if(strlen($slot) > 0) {
$query = "INSERT INTO bookings (date, start, name, address, email, phone) VALUES ('$booking_date', '$slot', '$name', '$address', '$email', '$phone')";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
} // Close if
} // Close foreach
header( 'Location: thankyou.php' );
?>
connect.php:
<?php
// Make a MySQL Connection
$host="my host";
$user="db_xxx";
$password="mypasswoe";
$db = "db_xxx";
$link = mysqli_connect($host, $user, $password);
mysqli_select_db($link, $db) or die(mysql_error());
?>
新的.php:
<?php
//if "email" variable is filled out, send email
if (isset($_REQUEST['email'])) {
//Email information
$admin_email = "booking@mydomain.com";
$email = $_REQUEST['email'];
$subject = "Booking Confirmation";
$comment = "Hi, \n\n Thank you for joining \n\n
Regards Site Admin \n\n";
//send email
mail($email, "$subject", "$comment", "From:" . $admin_email);
//Email response
echo "Thank you for contacting us!";
}
//if "email" variable is not filled out, display the form
else {
?>
<form method="post">
Email: <input name="email" type="text" /><br />
Subject: <input name="subject" type="text" /><br />
Message:Your Reservation has been made. Please check reservation detail below:<br />
<textarea name="comment" rows="15" cols="40"></textarea><br />
<textarea name="name" rows="15" cols="40"></textarea><br />
<input type="submit" value="Submit" />
</form>
<?php
}
?>
【问题讨论】:
-
or die(mysql_error()必须是or die(mysqli_error($link)- 您不能混合使用 MySQL API。另外,删除"$subject", "$comment"中的引号 -
在您打开
<?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部,看看它是否产生任何东西。 -
感谢您的回复,我已经按照您的要求进行了更改,还添加了错误报告,但它没有显示任何标准的感谢消息
-
以防我收到来自表单的电子邮件。是否可以通过电子邮件接收此表格中的所有详细信息?现在我只能获取有关一个字段信息的信息。前任。如果我将
$comment = "Hi, \n\n Thank you for joining \n\n Regards Site Admin \n\n";更改为:$comment = $_REQUEST['address'];,我将收到包含客户地址信息的电子邮件。但我需要收到所有详细信息,例如:姓名、电话、地址、预订时间。可能吗。感谢您的任何回复