首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php post错误

php post错误
EN

Stack Overflow用户
提问于 2015-05-31 20:38:26
回答 2查看 780关注 0票数 0

首先,我要说,这是我自大学以来第一次接触php,而且我的知识非常有限。我遵循了一个教程,以实现一个客户端的自举网站上的联系人表单。除了"message“字段之外,由于它是文本区域而不是输入,一切都正常工作。为了进行测试,我用一个输入交换了textarea,它工作得很好。是否还有另一种方法来捕获用户输入的文本到post?这看起来很简单,但我已经挣扎了好几个小时,似乎找不到解决办法。对于消息html,我使用以下代码:

代码语言:javascript
复制
<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,它会显示错误消息‘请输入您的消息’。

代码语言:javascript
复制
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>';       
        }

    }


}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-31 20:46:56

它显示错误消息Please Enter you Message,因为您的消息没有发送到您的php脚本。根据您的代码,您正在检查该行中的message

代码语言:javascript
复制
if (!$_POST['message']) {
    $errMessage = 'Please enter your message';    
}

但是没有名为message的输入或文本区域字段。为了将消息发布到php脚本,您应该将textarea名称Enter Your Message更改为message,然后它将完美地工作。

票数 2
EN

Stack Overflow用户

发布于 2015-05-31 21:01:07

我不知道为什么要用<?php echo htmlspecialchars($_POST['message']);?>打印消息,但我在这里看到了一些可能的问题。

  • 没有名为message的输入。文本区域的名称是Enter Your Message。带有空格的名称将在$_POST中转换为下划线。这意味着您需要引用$_POST["Enter_Your_Message"]
  • 我建议您在将输入值赋值给变量之前检查输入是否已填充。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30562419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档