我有一個表格,允許非用戶的消息,腳本採取的形式內容,將它們存儲在我的messages
表中,然後最終通過電子郵件發送給用戶的內容他們的電郵地址。發送電子郵件和寫入數據庫不工作
我很難弄清楚爲什麼我的表單不會提交併返回錯誤信息,我沒有正確地完成設置。沒有電子郵件正在發送,並且沒有正在進行的數據庫表中。
我的表單代碼;
<form class="signup-form" action="sendmail.php" id="email_submit" method="POST">
<fieldset>
<input type="text" name="msg_touserid" id="msg_touserid" value="<?php echo htmlentities($_GET["uid"], ENT_QUOTES, 'UTF-8'); ?>" style="display: none;">
<input type="text" name="msg_tousername" id="msg_tousername" value="<?php echo htmlentities($_GET["username"], ENT_QUOTES, 'UTF-8'); ?>" style="display: none;">
<input type="text" placeholder="Your name..." name="msg_fromname" id="msg_fromname" value=""><br />
<input type="text" placeholder="Your mobile number..." name="msg_mobile" id="msg_mobile" value=""><br />
<input type="email" name="msg_toemail" id="msg_toemail" value="[email protected]" style="display: none;">
<input type="email" placeholder="Your email..." name="msg_fromemail" id="msg_fromemail" value=""><br />
<input type="text" placeholder="Message subject..." name="msg_subject" id="msg_subject" value=""><br />
<textarea name="msg_messagebody" id="msg_messagebody" style="height: 282px; background-image: none; background-position: 0px 50%; background-repeat: repeat;"></textarea>
</fieldset>
<input type="submit" class="btn-colored submit-send-email" value="Send email" />
</form>
我的sendmail.php代碼;
$connection = mysql_connect('localhost', 'XXX', 'XXX');
if (!$connection){
die('Could not connect: ' . mysql_error());
}
mysql_select_db('DB');
if (isset($_POST['email_submit'])){
$msg_touserid = $_POST['msg_touserid'];
$msg_tousername = $_POST['msg_tousername'];
$msg_fromname = $_POST['msg_fromname'];
$msg_mobile = $_POST['msg_mobile'];
$msg_toemail = $_POST['msg_toemail'];
$msg_fromemail = $_POST['msg_fromemail'];
$msg_subject = $_POST['msg_subject'];
$msg_messagebody = $_POST['msg_messagebody'];
$sql = "INSERT INTO messages (msg_touserid, msg_tousername, msg_fromname, msg_mobile, msg_toemail, msg_fromemail, msg_subject, msg_messagebody)
VALUES ('$msg_touserid', $msg_tousername', '$msg_fromname', '$msg_mobile', '$msg_toemail', '$msg_fromemail', '$msg_subject', '$msg_messagebody')";
if (!mysql_query($sql,$connection)){
die('Error: ' . mysql_error());
}
$emailID = "$msg_toemail";
$subject = "Enquiry from. $msg_fromname . through our website";
$body = <<<EOD
<table cellspacing="0" cellpadding="1" border="1">
<tbody>
<tr>
<td style="padding: 5px 10px;" width="150">Name: </td>
<td style="padding: 5px 10px;">$msg_fromname</td>
</tr>
<tr>
<td style="padding: 5px 10px;" width="150">Mobile: </td>
<td style="padding: 5px 10px;">$msg_mobile</td>
</tr>
<tr>
<td style="padding: 5px 10px;" width="150">Email: </td>
<td style="padding: 5px 10px;">$msg_fromemail</td>
</tr>
<tr>
<td style="padding: 5px 10px;" width="150">Message: </td>
<td style="padding: 5px 10px;">$msg_messagebody</td>
</tr>
</tbody>
</table>
EOD;
$headers = "From: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n";
mail($emailID, $subject, $body, $headers);
echo "<h4>Thank you for your message.</h4>";
} else {
echo("Oops... Please check you have completed the form correctly.");
};
我的數據庫結構;
id int(10) (AI)
msg_touserid int(10)
msg_tousername varchar(100)
msg_fromname varchar(100)
msg_mobile varchar(20)
msg_toemail varchar(100)
msg_fromemail varchar(100)
msg_subject varchar(200)
msg_messagebody varchar(1000)
msg_sent timestamp
'if(isset($ _ POST ['email_submit'])){...}'永遠不會啓動,並且http://php.net/manual/en/function.error-reporting.php本來會告訴你的;-) –
[** SQL注入警報**](http://stackoverflow.com/q/60174/) –