首先,我要说,这是我自大学以来第一次接触php,而且我的知识非常有限。我遵循了一个教程,以实现一个客户端的自举网站上的联系人表单。除了"message“字段之外,由于它是文本区域而不是输入,一切都正常工作。为了进行测试,我用一个输入交换了textarea,它工作得很好。是否还有另一种方法来捕获用户输入的文本到post?这看起来很简单,但我已经挣扎了好几个小时,似乎找不到解决办法。对于消息html,我使用以下代码:
<div class="form-group">
<label for="message" class="col-sm-2 control-label">Message</label>
<div class="col-sm-10">
<textarea class="form-control" rows="4" name="Enter Your Message" ><?php echo htmlspecialchars($_POST['message']);?></textarea>
<?php echo "<p class='text-danger'>$errMessage</p>";?>
</div>
</div>这是我正在使用的php,它会显示错误消息‘请输入您的消息’。
if ($_POST["submit"]) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$human = intval($_POST['human']);
$from = 'bot@dtosolutions.com';
$to = 'eric@ericbelldesigns.com';
$subject = 'Message from Contact Form';
$body ="From: $name\n E-mail: $email\n Message:\n $message";
//Check if name is entered
if (!$_POST['name']) {
$errName = 'Please enter your name';
}
//Check if email is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Please enter a valid email';
}
//Check if a message is entered
if (!$_POST['message']) {
$errMessage = 'Please enter your message';
}
//Check if anti-bot test is correct
if ($human !== 7) {
$errHuman = 'Your anti-spam is incorrect';
}
// If there are no errors - send the email
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
if(mail ($to, $subject, $body, $from)) {
$result='<div class="alert alert-success">Thank You! I will be in touch</div>';
} else {
$result='<div class="alert alert-danger">Sorry there was an error sending your message.</div>';
}
}
}发布于 2015-05-31 20:46:56
它显示错误消息Please Enter you Message,因为您的消息没有发送到您的php脚本。根据您的代码,您正在检查该行中的message
if (!$_POST['message']) {
$errMessage = 'Please enter your message';
}但是没有名为message的输入或文本区域字段。为了将消息发布到php脚本,您应该将textarea名称Enter Your Message更改为message,然后它将完美地工作。
发布于 2015-05-31 21:01:07
我不知道为什么要用<?php echo htmlspecialchars($_POST['message']);?>打印消息,但我在这里看到了一些可能的问题。
message的输入。文本区域的名称是Enter Your Message。带有空格的名称将在$_POST中转换为下划线。这意味着您需要引用$_POST["Enter_Your_Message"]。https://stackoverflow.com/questions/30562419
复制相似问题