2016-04-14 49 views
0

我正在做联系表格作为一个学校项目。我发现它只发送邮件,但没有主题和评论。你能帮我么?邮件缺少评论和主题

<?php 
if (isset($_POST['jmeno'])) { 
    if (!isset($_POST['email']) || !isset($_POST['koment']) || $_POST['jmeno'] = "" || $_POST['email'] = "" || $_POST['koment'] = "") { 
     die("Nastala chyba, musíte vyplnit všechny pole! Požadavek nebyl odeslán."); 
    } else { 
     mail('[email protected]', $_POST['email'], $_POST['koment']); 
     echo '<span style="text-align:center;color:green;font-size:30px;"> Připomínka odeslána</span>'; 
    } 
} 
?> 
+0

什么'的print_r($ _ POST)''邮件()'函数调用之前说?以及哪个参数是您的主题和您的邮件正文?文档说下面的命令:'邮件(字符串$到,字符串$主题,字符串$消息)' – mitkosoft

+0

你好,电子邮件被用作一个对象,koment是我的信息。我认为我的功能是正确的,但由于某种原因,评论和主题不属于邮件的一部分。它只有在它被写成像这样的“东西”时才起作用,否则不起作用。 – Restr

回答

-2

这是一个使用php mail()函数发送额外头文件的工作示例。

<?php 
$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
?> 

看一看的PHP documentation在那里你会发现你的电子邮件添加对象的更多的例子以及其他头。

您的代码,编辑例如:

<?php 
if (isset($_POST['jmeno'])) 
{ 
    if (!isset($_POST['email']) || 
     !isset($_POST['koment']) || 
     $_POST['jmeno'] = "" || 
     $_POST['email'] = "" || 
     $_POST['koment'] = "") 
     { 
     die("Nastala chyba, musíte vyplnit všechny pole! Požadavek nebyl odeslán."); 
    } 
    else 
    { 
     $headers = 'From: [email protected]' . "\r\n" . 
        'Reply-To: [email protected]'; 

     if(mail($_POST['email'], 'SUBJECT HERE', $_POST['koment'], $headers)) 
     { 
      echo '<span style="text-align:center;color:green;font-size:30px;"> Připomínka odeslána</span>';   
     } else { 
      echo 'Email error message'; 
     } 
    } 
} 
?> 
+0

请[仅限链接回答](http://meta.stackoverflow.com/tags/link-only-answers/info)。答案是“几乎不超过一个链接到一个外部网站”[可能会被删除](http://stackoverflow.com/help/deleted-answers) – Quentin

+0

@Quentin好点。答案现在有附加的示例代码为建议在SO元。我不能说如何答案值得减信贷,虽然它一定会帮助解决问题的Restr。 – Henkealg

+0

是的,它的工作原理,但只是因为它不能从我的形式收到任何信息我不知道为什么,但它只是不发送主题和评论。 – Restr

-1

Documentation

bool mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]); 

我已经通过它可以在发送内容的参数创建一个功能

mails($EmailTo, $Subject, $Message, $EmailFrom, $ReplyTo); 

发送电子邮件HTML格式。您可以在$Message中添加HTML表格,以便以良好的格式查看电子邮件。

<?php 
// email alerts 
function mails($EmailTo, $Subject, $Message, $EmailFrom, $ReplyTo='') 
{ 
    $To = $EmailTo; 
    $Body = $Message; 
    $Headers = "MIME-Version: 1.0 \r\n"; 
    $Headers .= "From: $EmailFrom \r\n"; 
    $Headers .= "Reply-To: $ReplyTo \r\n"; 
    $Headers .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 

    $MailSent = mail($To, $Subject, $Body, $Headers); 
    return $MailSent; 
} 

编辑:

if (isset($_POST['jmeno'])) 
{ 
    if (!isset($_POST['email']) || !isset($_POST['koment']) || $_POST['jmeno'] == "" || $_POST['email'] == "" || $_POST['koment'] == "") 
    { 
     die("Nastala chyba, musíte vyplnit všechny pole! Požadavek nebyl odeslán."); 
    } 
    else 
    { 
     $EmailFrom = isset($_POST['email']) ? $_POST['email'] : ''; 
     $ReplyTo = $EmailFrom; 
     $EmailTo = '[email protected]'; 
     $Subject = 'Subject Here'; 
     $Comment = isset($_POST['koment']) ? nl2br($_POST['koment']) : ''; 

     $Message = ' 
     Hi, <br /> 

     You have recieved a new message.<br /><br /> 

     <table border="0" cellpadding="5"> 
     <tr> 
     <td align="left" valign="top" width="100px">Email From :</td><td align="left" valign="top" width="200px">'.$EmailFrom.'</td> 
     <td align="left" valign="top">Koment :</td><td align="left" valign="top">'.$Comment.'</td> 
     </tr> 
     </table>'; 

     $MailSent = mails($EmailTo, $Subject, $Message, $EmailFrom, $ReplyTo); 

     if ($MailSent) 
     echo '<span style="text-align:center;color:green;font-size:30px;"> Připomínka odeslána</span>'; 
    } 
} 
?> 
+0

有助于改善代码或找出问题的答案 –

+0

你好,还是不会收到任何主题和消息。 – Restr

+0

编辑上面的代码,有分配操作符用来代替co比较操作符。输出结果如何? –