使用PHP表单发送电子邮件 - 所有表单输入均为空白

时间:2017-05-13 17:19:08

标签: php html forms email

我是PHP的完整菜鸟,但对于最近的网络项目,它是发送电子邮件的必要条件。通过对网络的研究,这个网站包括它似乎是一个非常简单的事情。每次我提交表单时,PHP运行正常,但我的所有表单字段都是空白的,它们在_POST数组中可用,但从不具有任何内容

HTML

<form action="~/includes/form_31804.php" novalidate method="post">
    <div class="row">
        <div class="col-sm-4">
            <div class="form-group">
                <label for="name">
                    Name
                </label>
                <input id="name" name="name" class="form-control form-row" required />
            </div>
        </div>
        <div class="col-sm-4">
            <div class="form-group">
                <label for="company">
                    Company
                </label>
                <input id="company" name="company" class="form-control form-row" required />
            </div>
        </div>
        <div class="col-sm-4">
            <div class="form-group">
                <label for="email">
                    Email
                </label>
                <input id="email" name="email" class="form-control form-row" type="email" required />
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-sm-4">
            <div class="form-group">
                <label  for="subject">
                    Subject
                </label>
                <input id="subject" name="subject" class="form-control form-row" required />
            </div>
        </div>
        <div class="col-sm-8">
            <div class="form-group">
                <label for="message">
                    Message
                </label><textarea id="message" name="message" class="form-control form-row" rows="2" cols="50" required></textarea>
            </div>
        </div>
    </div>
    <input class="bloc-button btn btn-d btn-lg pull-right btn-sq bttn1-blue diagonal-fill diagonal-white" type="submit" name="submit" value="Send" />
</form>

PHP

<?php 

$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = $_POST['submit'];
fwrite($myfile, $txt);
fclose($myfile);

if(isset($_POST['email'])){
    $to = "james@soursquare.co.uk"; // this is your Email address
    $from = $_POST['email']; // this is the sender's Email address
    $first_name = $_POST['name'];
    $company = $_POST['company'];
    $subject = "New Website Enquiry";
    $message = $_POST['message'];

    $fullMessage = 'Email from: ' . $from . '/nEmail Address: ' . $from . '/nCompany: ' . $company . '/nMessage: ' . $message;

    $headers = "From:" . $from;
    mail($to,$subject,$fullMessage, $headers);
    header('Location: /thankyou');
}
?>

如果我创建一个简单的PHP脚本来测试邮件功能它工作正常,所以它必须与表单和PHP之间的通信。对于它的价值,该网站在IIS /

中的Windows Server 2012上运行

这让我感到很沮丧,好几个小时了,所以任何建议都会很棒。

修改

不确定这是否相关,但如果我查看$ _POST中传递的内容,我得到的是一个空数组。我的网络服务器上有什么东西可以阻止它吗?我正在运行Windows Server 2012

1 个答案:

答案 0 :(得分:-1)

詹姆斯。

首先,检查是否有提交点击按钮。

if (isset($_POST['submit'])) {
    // Setup your variables here.
}

如果您打算只创建一个用于测试的项目和一些简单的学校项目,那很好,但不建议在生产环境中使用此代码,因为它不安全。

如果正确,请检查您的行动路径文件。我已经在我的本地机器上测试了你的表格,而且工作正常。只需检查提交按钮。