2014-10-06 146 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