2014-10-06 100 views
0

我有一个让我的PHP邮件程序代码正常工作的问题。我可以让它在页面加载好的时候发送一封电子邮件,问题在于ISSET命令让它在提交按钮被按下后提交表单。我试过把它放在不同的地方,但仍然无法使用它。任何帮助,将不胜感激。PHP梅勒编码问题

<?php 
require '/phpmailer/PHPMailerAutoload.php'; 
require_once '/phpmailer/class.phpmailer.php'; 
include '/phpmailer/class.smtp.php'; 

if(isset($_POST["Submit"])) 
{ 

$emailaddress = '****@**********'; 

$message= 
    'Name: '.$_POST['name'].'<br /> 
    Email: '.$_POST['email'].'<br /> 
    IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br /> 
    Message:<br /><br /> 
    '.nl2br($_POST['message']).' 
    '; 

$mail    = new PHPMailer(); 
$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "********"; // SMTP server 
$mail->SMTPDebug = 1;      // 1 = errors and messages,2 = messages only 
$mail->SMTPAuth = false;     // enable SMTP authentication 
$mail->Port  = 25;     // set the SMTP port for the GMAIL server 
$mail->SMTPSecure = 'false';       // Enable encryption, 'ssl' also accepted 
$mail->CharSet = 'UTF-8'; // so it interprets foreign characters 
$mail->setFrom('***********'); 
$mail->AddReplyTo('**********'); 
$mail->Subject = "Contact form submission from ".$_POST['name']." "; 
$mail->MsgHTML($message); 
$mail->AddAddress($emailaddress); 

if(!$mail->Send()) 
{ 
    echo "Message could not be sent. <p>"; 
    echo "Mailer Error: " . $mail->ErrorInfo; 
    exit; 
} 

    echo "Thank you, your message has been sent!"; 
} 
+2

您的条件'if(isset($ _ POST [“Submit”]))''基于一个名为'Submit'的提交按钮。如果您的提交按钮具有'name =“submit”'而不是'name =“Submit”',那么这将解释它。如果没有命名,那么**做**。这是我能想出的唯一结论。发布您的HTML表单100%确定。 – 2014-10-06 16:44:46

+0

谢谢!出于某种原因,我认为按钮只需要按钮类型和值=“提交”。一旦我添加了它的名称属性的工作。 – user3630457 2014-10-06 17:09:53

+0

除了自动加载器之外,您不需要“需要” - 这就是它的全部要点! – Synchro 2014-10-06 17:50:07

回答

0

我要作出回答我的意见,因为这是唯一的结论,我可以想出,最有可能是没有看到OP的HTML表单。

您的条件声明if(isset($_POST["Submit"]))基于名为Submit的提交按钮。如果您的提交按钮有name="submit"而不是name="Submit",那么这将解释它。如果没有命名,则

即:

<input type="submit" name="Submit" value="Send Email"> 

是不一样的

<input type="submit" name="submit" value="Send Email"> 
  • POST变量是大小写敏感的。

您目前显示的代码有适当的支撑。

曾使用error reporting并放置在您的文件(S)的顶部您开放<?php标签

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

就已经暗示了Undefined index Submit...警告信息之后。

+0

我不确定,但我也认为提交按钮需要一个值属性来计算isset' – Rimble 2014-10-06 16:48:37

+0

@TomKriek设置值只是显示按钮的单词回显。如果没有值,则“提交”一词将自动显示为其默认值。 – 2014-10-06 16:49:58

+0

好的谢谢澄清! – Rimble 2014-10-06 16:51:08