繁体   English   中英

为什么我的HTML / PHP表单不起作用?

[英]Why won't my HTML/PHP form work?

好的,所以我使用HTML制作了一个表单,并且希望将其提交到我的电子邮件中,因此我找到并修改了这个PHP脚本:

<?php
$to = "me@myemail.com";
$subject = "R&R Form";
$firstname1 = $_REQUEST['firstname1'] ;
$lastname1 = $_REQUEST['lastname1'] ;
$firstname2 = $_REQUEST['firstname2'] ;
$lastname2 = $_REQUEST['lastname2'] ;
$department1 = $_REQUEST['department1'] ;
$department2 = $_REQUEST['department2'] ;
$reason = $_REQUEST['reason'] ;
$behaviour1 = $_REQUEST['behaviour1'] ;
$behaviour2 = $_REQUEST['behaviour2'] ;
$behaviour3 = $_REQUEST['behaviour3'] ;
$behaviour4 = $_REQUEST['behaviour4'] ;
$behaviour5 = $_REQUEST['behaviour5'] ;
$behaviour6 = $_REQUEST['behaviour6'] ;
$behaviour7 = $_REQUEST['behaviour7'] ;

$message = "Nominee: $firstname1 $lastname1 /n Department: $department1 /n /n Nominator: $firstname2 $lastname2 /n Department: $department2 /n /n Reason for nomination: $reason /n /n Additional reasons: $behaviour1 /n $behaviour2 /n $behaviour3 /n $behaviour4 /n $behaviour5 /n $behaviour6 /n $behaviour7 /n";

$headers = "Recognition and Reward Request for $firstname1 $lastname1";
$sent = mail($to, $subject, $message, $headers,) ;
if($sent)
{print "Your nomination was submitted successfully"; }
else
{print "We encountered an error submitting your nomination"; }
?>

我知道它的写法不是很好(我今天才开始学习php,我只是修改了我复制并粘贴的脚本。),但是它似乎没有任何语法错误或其他任何我可以看到的错误。 我不是在要求有人为我修复代码,我只是在要求一些有关脚本为何无法正常运行的指针。

我将其上传到安装了PHP的服务器上,所以这不是问题。 我整天都在试图解决这个问题,这令人感到沮丧。 有人帮忙吗?

好吧,脚本正在使用它作为标题,这是无效的:

$headers = "Recognition and Reward Request for $firstname1 $lastname1";

也许您打算将其作为主题行?

标头应为有效的SMTP标头,如下所示:

$headers = 'From: webmaster@example.com' . "\r\n";

查看邮件功能的示例以获取更多信息。

$sent = mail($to, $subject, $message, $headers,) ;

应该看起来像这样:

$sent = mail($to, $subject, $message, $headers) ;

(不带逗号)

希望我有所帮助

由于您是入门者,因此建议您尽可能使用PEAR。

查看:pear html quickform

它将真正使您的生活更轻松。

对于发送电子邮件,我建议您使用:PHPMailer

它具有许多开箱即用的电子邮件功能

我看到的第一个问题是$headers不包含有效的标题。 标头是类似From: name@example.comCC: someoneelse@example.com ,但是您将其视为电子邮件的一部分。

这是有关电子邮件标题的一些信息。

它确实有语法错误。 由于看不到它们,因此建议您启用完整的错误报告。 有很多方法可以做到。 最简单的方法可能是在脚本顶部添加以下代码:

<?php

ini_set('display_errors', true);
error_reporting(E_ALL);

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM