Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP表单发送电子邮件-所有表单输入均为空_Php_Html_Forms_Email - Fatal编程技术网

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

使用PHP表单发送电子邮件-所有表单输入均为空,php,html,forms,email,Php,Html,Forms,Email,我完全不懂PHP,但最近的一个网络项目要求我发送电子邮件。从网上的研究来看,这个网站包含了这似乎是一件非常简单的事情。每次我提交表单时,PHP运行正常,但我的所有表单字段都为空,它们在_POST数组中可用,但从来没有任何内容 HTML: PHP 如果我创建一个简单的php脚本来测试邮件函数,它工作得很好,所以它必须是表单和php之间的通信。值得一提的是,该网站是在IIS的Windows Server 2012上运行的/ 这已经让我沮丧了好几个小时了,所以任何建议都很好 编辑 不确定这是否相关,但

我完全不懂PHP,但最近的一个网络项目要求我发送电子邮件。从网上的研究来看,这个网站包含了这似乎是一件非常简单的事情。每次我提交表单时,PHP运行正常,但我的所有表单字段都为空,它们在_POST数组中可用,但从来没有任何内容

HTML:

PHP

如果我创建一个简单的php脚本来测试邮件函数,它工作得很好,所以它必须是表单和php之间的通信。值得一提的是,该网站是在IIS的Windows Server 2012上运行的/

这已经让我沮丧了好几个小时了,所以任何建议都很好

编辑

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

首先,检查您是否有一个提交点击按钮

if (isset($_POST['submit'])) {
    // Setup your variables here.
}
如果您只想创建一个用于测试的项目和一些简单的用于学校的项目,这很好,但不建议在生产环境中使用此代码,因为这是不安全的


请检查您的操作路径文件是否正确。我已经在我的本地机器上测试了你的表单,它工作正常。只需选中submit按钮。

在PHP文件的开头打印$SPOST,就在清理输入所需的第一个按钮下方,与往常一样,使用post get会话和请求值。但是,您是否尝试过用静态值重放mail中的变量,只是为了调试一点,它是否甚至达到了您的if语句,它是否使用头重定向您,php mail是否在您的服务器上使用phpinfo处于活动状态,所有调试步骤都需要一点。此外,我想知道将提交值放入文本文件的目的是什么。向我们展示更多关于哪些不起作用,哪些不起作用的信息。编辑:为什么您有必填字段,但您的表单发送一个novalidate?您的web服务器是否可能没有对newfile的写入权限?你有没有检查过你的PHP日志,看看有没有错误?谢谢大家的回复。随着最后修改日期的更改,文件肯定有写入权限,不过我明天会尝试打印,看看是否有帮助。Php邮件肯定是活动的,因为如果我运行一个示例脚本,它会很好地发送电子邮件,我也不会得到重定向。no validate是以前实现的遗留问题,现在已被删除。您可以尝试不使用操作路径中的波浪号吗?感谢您的回复,我最初选中了“提交”,但作为测试更改为“检查电子邮件”。操作文件绝对正确,因为我的文件的最后修改日期已更改。只是没有内容。是否有任何iis设置会影响它?在按下提交按钮后,您会收到什么类型的消息或结果?我进入PHP,但只显示一个空白页面。我猜这是因为它命中的IF语句不符合条件,所以没有其他情况发生。首先,请检查是否设置了条件。如果设置为$_POST['email']{code…}或者{diererror.}是的,如果我使用这个,我只会在空白页上得到error这个词
<?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');
}
?>
if (isset($_POST['submit'])) {
    // Setup your variables here.
}