【发布时间】:2020-12-13 17:26:12
【问题描述】:
我的 PHP 联系表单不起作用。当我尝试提交消息时,我只收到错误消息“发送电子邮件时出错!”。
我刚刚学习 PHP,包含我的 HTML 的 PHP 文件是否需要在任何地方打开 "<?php" & a closing "?>"?
感谢任何帮助、提示和建议。
contactForm.php
<?php if(isset($_POST['cf_submit'])) {
$errors = array();
$success = null;
$required_fields['cf_name'] = 'You are required to enter your name.';
$required_fields['cf_email'] = 'You are required to enter your e-mail Address.';
$required_fields['cf_subject'] = 'You are required to enter a subject.';
$required_fields['cf_message'] = 'You are required to enter a message.';
foreach($_POST as $key => $value) {
if(array_key_exists($key, $required_fields)) {
if(trim($_POST[$key]) === '') {
$errors[$key] = $required_fields[$key];
}
}
}
if(empty($errors)) {
$to = "MY EMAIL ADDRESS";
$subject = $_POST['cf_subject'];
$name_field = $_POST['cf_name'];
$email_field = $_POST['cf_email'];
$message = $_POST['cf_message'];
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";
$success = mail($to, $subject, $body);
}
if($success) {
echo "<p><strong>Thank you for getting in touch. Expect to hear back from us soon.</strong></p>";
} else {
echo "Error sending email!";
}
}
if(!empty($errors)) {
echo "<strong>Please check the following errors:</strong><br/><br/>";
echo "<ul>";
foreach($errors as $value) {
echo "<li>$value</li>";
}
echo "</ul>";
} ?>
HTML 表单
<form action="contactForm.php" method="post">
<!-- Name -->
<input name="cf_name" type="text" id="cf_name" class="cf_input" value="<?php if(isset($_POST['cf_name'])) echo $_POST['cf_name'];?>" placeholder="Name">
<!-- Email -->
<input name="cf_email" type="email" id="cf_email" class="cf_input" value="<?php if(isset($_POST['cf_email'])) echo $_POST['cf_email'];?>" placeholder="Email">
<!-- Subject -->
<input name="cf_subject" type="text" id="cf_subject" class="cf_input" value="<?php if(isset($_POST['cf_subject'])) echo $_POST['cf_subject'];?>" placeholder="Subject">
<!-- Message -->
<textarea name="cf_message" cols="45" rows="3" id="cf_message" value="<?php if(isset($_POST['cf_message'])) echo $_POST['cf_message'];?>" placeholder="Enter message here" class="cf_text"></textarea>
<!-- Submit -->
<button type="submit" name="cf_submit">Send Message</button>
</form>
【问题讨论】:
-
您确定您的服务器允许您通过 PHP 发送电子邮件吗?
-
感谢您的评论!我正在使用 XAMPP 处理文件,我会看看这是否合适。
-
xamp 默认无法发送电子邮件,这就是为什么您总是收到错误消息的原因,您必须设置 xamp 以发送电子邮件或使用 phmailer 库并将任何/您的 gmail 帐户与它连接并发送电子邮件
标签: php html contact-form