首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新手网站创建者。无法使表单与php脚本一起工作

新手网站创建者。无法使表单与php脚本一起工作
EN

Stack Overflow用户
提问于 2017-04-04 21:28:31
回答 2查看 46关注 0票数 0

我已经创建了一个网站,我没有在php中工作的业务。网站已启动并运行,但表单不能正常工作。现在,它提交到我的sform.php文件,但只显示一个空白页面,而不是提交到$to部分的电子邮件(出于隐私原因,我用redacted@redacted.com替换了它)。这是表单代码和php。我相信你们都会马上知道问题的症结所在。很抱歉我的无知。

表格:

代码语言:javascript
复制
<form class="form-horizontal" role="form" method="post" action="sform.php">
                      <div class="form-group">
                        <label for="name" class="col-lg-4 control-label"></label>
                        <div class="col-lg-10">
                          <input type="name" class="form-control" id="name" placeholder="Your Name">
                        </div>
                      </div>
                      <div class="form-group">
                        <label for="email" class="col-lg-4 control-label"></label>
                        <div class="col-lg-10">
                          <input type="email" class="form-control" id="email" placeholder="Email">
                        </div>
                      </div>
                        <div class="form-group">
                        <label for="phone" class="col-lg-4 control-label"></label>
                        <div class="col-lg-10">
                          <input type="phone" class="form-control" id="phone" placeholder="Phone">
                        </div>
                      </div>

                        <div class="form-group">
                        <label for="company" class="col-lg-4 control-label"></label>
                        <div class="col-lg-10">
                          <input type="company" class="form-control" id="company" placeholder="Company Name">
                        </div>
                      </div>


    <div class="form-group">
    <label for="message" class="col-lg-4 control-label"></label>
    <div class="col-lg-10">
    <textarea rows="3" class="form-control" id="message" placeholder="What can we do for you?"></textarea>
    </div>
    </div>
                      <div class="form-group">
                        <div class="col-lg-10">
                          <button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-ok-sign"></span>  Submit</button>
                        </div>
                      </div>
                   </form><!-- form -->

=========================================================

PHP:

代码语言:javascript
复制
<?php
if (isset($_POST["submit"])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['comments'];
    $human = intval($_POST['human']);
    $from = 'redacted'; 
    $to = 'redacted@redacted.com'; 
    $subject = 'redacted ';

    $body = "From: $name\n E-Mail: $email\n Comments: $comments\n";

    // Check if name has been entered
    if (!$_POST['name']) {
        $errName = 'Please enter your name';
    }

    // Check if email has been entered and is valid
    if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errEmail = 'Please enter a valid email address';
    }

    //Check if message has been entered
    if (!$_POST['comments']) {
        $errMessage = 'Please enter your message';
    }
    //Check if simple anti-bot test is correct
    if ($human !== 5) {
        $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! We will be in contact with you shortly.</div>';
} else {
    $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again.</div>';
}
}
}
?>

==================================================================

再次感谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2017-04-04 21:33:26

我认为您在文本框中遗漏了name属性。你的代码:

代码语言:javascript
复制
<input type="name" class="form-control" id="name" placeholder="Your Name">

试试这个:

代码语言:javascript
复制
<input type="text" class="form-control" id="name" name="name" placeholder="Your Name">

并且在所有输入字段中添加name="something“。

票数 2
EN

Stack Overflow用户

发布于 2017-04-04 21:33:09

只有在未设置POST值的情况下才会设置$err*变量,但无论如何都要对它们进行测试。如果设置了POST值,它们就不存在。通过稍微改变一些东西,你可能会这样做:

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

这可能不是最好的方法,但你可能可以让它工作,然后随着你的技能进步而改进它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43208672

复制
相关文章

相似问题

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