2015-01-17 45 views
-1

我有一个联系表单,它包含以下字段:名称,电子邮件,网站和消息。当用户点击提交时,用户输入的详细信息必须通过电子邮件发送(我使用PHPMailer)。

邮件发送成功。但是,用户输入的详细信息未包含在电子邮件中。我一直在试图看看问题出在哪里,但我似乎找不到它。

这里是我的联系表格代码:

<div class="right"> 
         <form action="http://www.mokicruzphoto.com/testmailer.php" method="post" enctype="url-form-encoded" class="form"> 
         <table> 
          <tbody> 
           <tr> 
            <td style="font-size: 12px;">*Name &nbsp;</td> 
            <td><input type="text" name="name" style="border: 1px solid rgba(0,0,0,0.3); color: rgba(0,0,0,0.7);" required/></td> 

           </tr> 
           <tr> 
            <td style="font-size: 12px;">*Email &nbsp;</td> 
            <td><input type="email" name="email" style="border: 1px solid rgba(0,0,0,0.3); color: rgba(0,0,0,0.7);" required/></td> 

           </tr> 
           <tr> 
            <td style="font-size: 12px;">Website &nbsp;</td> 
            <td><input type="text" name="website" style="border: 1px solid rgba(0,0,0,0.3); color: rgba(0,0,0,0.7);"/></td> 

           </tr> 
           <tr> 
            <td style="font-size: 12px;">*Comment/Message &nbsp;</td> 
            <td><textarea type="text" name="message" style="border: 1px solid rgba(0,0,0,0.3); resize: none; width: 300px; color: rgba(0,0,0,0.7);" required></textarea> 

           </tr> 
           <tr></tr> 
           <tr></tr> 
           <tr></tr> 
           <tr></tr> 
           <tr> 
            <td></td> 
            <td><input type="submit" name="submit" style="border: 1px solid rgba(0,0,0,0.2); background: rgba(0,0,0,0.16); width: 150px;"/></td>  
           </tr>                         
          </tbody> 
         </table> 
         </form>  
        </div> 
       </div> 
      </div> 

这是我的PHP文件:

<?php 

    require ("********************/PHPMailerAutoload.php"); 


    $email_add = $_POST['email']; 
    $visitor = $_POST['name']; 


    $mail = new PHPMailer(); 
    $mail->isSMTP(); 
    $mail->Host = "localhost"; 
    $mail->SMTPDebug = 1; 
    $mail->SMTPAuth = true; 
    $mail->Username = '********************'; 
    $mail->Password = '********************'; 
    $mail->SMTPSecure = "ssl"; 
    $mail-> Port = 465; 
    $mail->From = "********************";    /*Sender*/ 
    $mail->FromName = "********************";    /*Sender*/ 
    $mail->addAddress('********************');   /*Recipient*/ 
    $mail->addReplyTo('********************'); 
    $mail->WordWrap = 50; 
    $mail->isHTML(true); 
    $mail->Subject = 'Test Email'; 
    $mail->Body = 'Hi Iam using PHPMailer library to sent SMTP mail from localhost. This is a test email by JC Pineda'; 
    if(!$mail->send()) { 
     echo 'Message could not be sent.'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; 
     exit; 
    } 
    echo 'Message has been sent'; 

    ?> 

如果有帮助,这是我的.htaccess以及:

Options -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 

回答

1

首先你错过了你的评论和网站的属性。

<td><input name="theNameYouNeed"></td> 

比如您发表评论需要

<td><input name="comment"></td> 

还需要另外也

$email_add = $_POST['email']; 
$visitor = $_POST['name']; 

具有添加了其他形式$_POST了。 此外,您还没有在任何地方回显或打印它们以显示出来。

编辑:任何人想要全部答案的问题是,他使用的是元素,而不是输入元素。 <textarea>标记不会创建用于php数据的有效name属性。

+0

我已经在网站和消息字段上放置了名称属性。我也发布了他们在我的PHP文件,但它仍然不会工作 – jpineds

+0

哇,@Armand,你对标签的建议是正确的。我只是将