我是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
答案 0 :(得分:-1)
詹姆斯。
首先,检查是否有提交点击按钮。
if (isset($_POST['submit'])) {
// Setup your variables here.
}
如果您打算只创建一个用于测试的项目和一些简单的学校项目,那很好,但不建议在生产环境中使用此代码,因为它不安全。
如果正确,请检查您的行动路径文件。我已经在我的本地机器上测试了你的表格,而且工作正常。只需检查提交按钮。