PHP Mailform не работает правильно - PullRequest
0 голосов
/ 29 марта 2011

Я пытаюсь заставить работать почтовую форму, это код, который я использую ..

<table class="mail" table width="400" border="0" align="center" cellpadding="3"  cellspacing="1">
<tr>
<td><strong>Contact Form </strong></td>
</tr>
</table>

<table class="mail" table width="400" border="0" align="center" cellpadding="0"    cellspacing="1">
<tr>
<td><form name="form1" method="post" action="send_contact.php">
<table class="mail" table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td width="16%">Subject</td>
<td width="2%">:</td>
<td width="82%"><input name="subject" type="text" id="subject" size="50"></td>
</tr>
 <tr>
<td>Message</td>
<td>:</td>
<td><textarea name="detail" cols="50" rows="4" id="detail"></textarea></td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td><input name="name" type="text" id="name" size="50"></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input name="customer_mail" type="text" id="customer_mail" size="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Send"> <input type="reset" name="Submit2" value="Reset"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html> 

это скрипт, который запускается ..

<?php
// Contact subject
  $subject ="$subject";
  // Details
   $message="$detail";

   // Mail of sender
  $mail_from="$customer_mail";
  // From
  $header="from: $name <$mail_from>";

   // Enter your email address
   $to ="email";

  $send_contact=mail($to,$subject,$message,$header);

   // Check, if message sent to your email
   // display message "thanks for sending us a message!"
  if($send_contact){
    Print "<html>";
    Print "<head>";
    Print "<link href='styles.css' rel='stylesheet' type='text/css' />";
    Print "</head>";
    Print "<body>";
    Print "<img src=images/banner2.png  alt='banner' />";
    Print "<p>Thanks for sending us a message!, please wait while you are being   redirected to the homepage</p>";
    Print "</body>";
    Print "</html>";

   }
   else {
   Print "<html>";
   Print "<head>";
   Print "<link href='styles.css' rel='stylesheet' type='text/css' />";
   Print "</head>";
   Print "<body>";
   Print "<img src=images/banner2.png  alt='banner' />";
   echo "ERROR";
   Print "</body>";
   Print "</html>";

  }
  ?>

, когда я ставлюКогда я отправляю свою электронную почту в «email», я просто получаю сообщение от @localhost, я знаю, что почтовый ящик работает, поскольку я использовал другой скрипт, но я хотел бы использовать этот скрипт, так как я могу изменить шрифт и размер.

спасибо

Ответы [ 2 ]

1 голос
/ 29 марта 2011

Похоже, вы пытаетесь использовать register_globals, но он отключен (что хорошо).

Вам нужно получить данные из формы, используя вместо этого $_POS T.

  $subject =$_POST['subject'];
      // Details
       $message=$_POST['detail'];

       // Mail of sender
      $mail_from=$_POST['customer_mail'];
 // From
  $header="from: ".$_POST['name']." <".$_POST['mail_from']>."";

   // Enter your email address
   $to =$_POST['email'];
0 голосов
/ 29 марта 2011

Попробуйте использовать дополнительный параметр -f для mail(), чтобы указать адрес отправителя для программы sendmail.

// To be certain, capitalize From:
$header="From: $name <$mail_from>";
$send_contact=mail($to,$subject,$message,$header, "-f$mail_from");
...