直截了当。我正在尝试在我的网站上设置联系表单,但努力使其工作。此外,还在SO上阅读了许多相关主题。我遵循了教程,因此我对这个主题非常熟悉。我确信我的php.ini文件配置得很好,因为直到最近才发送电子邮件(尽管它总是以垃圾邮件结束)。直到我对代码进行了更改。我迟早需要做出的改变。奇怪的是,当我使用没有变量的硬编码细节运行时发送电子邮件。但是当我实现变量时,它就停止了工作。显然我需要PHP来通过变量处理用户的输入。如何让PHP读取用户的输入?我认为最重要的部分是在输入标记中使用属性name="something"
。
分享相关代码:
PHP:
<?php
$fullName = $errorMsg = $sucMsg = "";
$errMsg = $email = $subject = $emailErr = $message = "";
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if (isset($_POST['submit'])) {
$fullName = test_input($_POST['fullName']);
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$emailErr = "Your email address is not valid !";
} else {
$email = $_POST['email'];
}
$subject = test_input($_POST['subject']);
$message = test_input($_POST['message']);
if($emailErr == "") {
$emailTo = "mark.alexa.uk@gmail.com";
$headers = "From ".$fullName." ".$email." via contact form";
$headers .= "Reply-To: ".$email;
$headers .= "Return-Path: webmaster@ubuntuserver\r\n";
$headers .= "CC: alexa.mark@mail.com\r\n";
$headers .= "BCC: alexa.mark@mail.com\r\n";
if (mail($emailTo, $subject, $message, $headers)) {
$sucMsg = "<p>The email was sent successfully !</p>";
} else {
$errMsg = "<p>The email could not be sent !</p>";
}
}
}
?>
HTML:
<div class="container" id="form">
<div id="successMsg" class="alert alert-success" role="alert"><?php
echo $sucMsg; ?></div>
<div id="errMsg" class="alert alert-danger" role="alert"><?php echo
$errMsg; ?></div>
<form method="POST" action="contact.php">
<fieldset class="form-group">
<label for="fullName">Full name</label>
<input type="text" class="form-control" name="fullName"
id="fullName" placeholder="full name" required>
</fieldset>
<fieldset class="form-group">
<label for="email">Email</label>
<input type="email" id="email" placeholder="email" class="form-
control" required>
<small id="emailHelp" name="email" class="form-text text-muted">I
won't share your email with anyone</small>
</fieldset>
<fieldset class="form-group">
<label for="subject">Subject</label>
<input type="text" class="form-control" name="subject" id="subject" placeholder="subject" required>
</fieldset>
<fieldset class="form-group">
<label for="message">Your message</label>
<input type="text" class="form-control" name="message" id="message" placeholder="message" required>
<input type="submit" id="submit" class="btn btn-success" value="Submit">
</fieldset>
</form>
</div>
更新:
我应该如何修改PHP代码,使其不会以垃圾邮件结束?
答案 0 :(得分:1)
添加姓名=&#34;提交&#34;到你的提交按钮。表单将name属性传递给post数组。所以你的代码测试:
$_POST['submit']
..因为<input type="submit" id="submit" name="submit" class="btn btn-success" value="Submit">
未设置而无效。
.my-container div.sibling:last-of-type{...}