Formularz kontaktowy w PHP

Artykuły, porady, tutoriale.
admin
Administrator
Administrator
Posty: 24
Rejestracja: 15 lip 2013, 21:50

Formularz kontaktowy w PHP

Post autor: admin » 15 lip 2013, 23:30

Kod: Zaznacz cały

 <?php
// od kogo ma pójść mail - tu musi być jakies konto na serwerze z którego korzystasz.
$mail_from = "admin@domena.pl";
// do kogo ma pójść mail - czyli kto zajmie się obsluga danych
$mail_to = "admin@domena.pl";
// do kogo jeszcze -  ma pójść mail (jeśli puste to nigdzie)
$mail_cc = "";
// temat maila; - teraz zablokowane - bo jest tomoże być podawane w zmiennej wywolania formularza
//$subject = "Zgłoszenie plikul";
// tekst opisu formularza pojawia się przed formularzem (pelny html)
$tekst_title = '<center><font color=orange>Formularz Kontaktowy</font></center><br>
Aby się z nami skontaktować wypełnij poniższy formularz, pola oznaczone "*" sa wymagane.<br>';
// tekst podziekowania za wypelnienie - pojawia się po poprawnym wyslaniu maila(pelny html)
$tekst_mail_ok = "Dzięki, mail został wysłany <a href=zglos.php>Dodaj kolejny plik</a>";
// błąd w wyslaniu maila - nie powinno się zdarzac - ale jeśli się zdarzy...(pelny html)
$tekst_mail_no_ok = "Error, mail nie został dostarczony";
// nazwa pola z danymi dodatkowymi - jeśli np. jest to licytacja - tu mozna wpisac cene - w innym wypadku jakas nazwa na uwagi opcjonalne.
$comment_title = "Treść<b>*</b>";

// tekst na przycisku submit
$submit_title = "Wyślij";

//// koniec - niżej nie modyfikować bez wyraźnej potrzby i znajomości skutków
$body = htmlspecialchars($body, ENT_QUOTES); 
$subject = htmlspecialchars($subject, ENT_QUOTES); 
$message = htmlspecialchars($message, ENT_QUOTES); 
?>
<table width="100%" height="100%" cellspacing="10" cellpadding="" border="0">
<tr>
<td align="left" valign="top" ><blockquote>
<?php
if ($mail==1)
{
$to  = $mail_to;
$mess = "
<b>Autor:</b> $author <BR><BR>
<b>E-mail :</b> $nazwa <BR><BR>
<b>Temat:</b> $size<br><br>
<b>Treść</b> ".stripslashes($message); 
$subject = "Zgloszono plik";
$headers  = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-2\r\n"; 
$headers .= "From: domena.pl <".$mail_from.">\r\n"; 
if ($mail_cc) $headers .= "Cc: ".$mail_cc."\r\n"; 

/* and now mail it */ 
      if (mail($to, stripslashes($subject), $mess, $headers))
      {
      $tekst_glowny = $tekst_mail_ok; 
      }
      else
      {
      $tekst_glowny = $tekst_mail_no_ok; 
      }
}
else
{
$tekst_glowny = $tekst_title.stripslashes($body).'<br>
<form name="contact" method="post" action="'.$PHP_SELF.'">
<input value="1" name="mail" type="hidden">
  <table border="0" cellpadding="2" cellspacing="0">
    <tbody>
     <tr>
      <td >Twój nick<b>*</b></td>
      <td><input maxlength="56" size="33" name="author" type="text" ></td>
    </tr>
	<tr>
      <td >Twój e-mail<b>*</b></td>
      <td><input maxlength="56" size="33" name="nazwa" type="text" ></td>
    </tr>
      <td >Temat<b>*</b></td>
      <td><input maxlength="96" size="33" name="size" type="text" ></td>
    </tr>
    <tr>
    <input type="hidden" name="body" value="'.stripslashes($body).'">
    <input type="hidden" name="subject" value="'.stripslashes($subject).'">
      <td colspan="2" valign="top" >'.$comment_title.':<br>
       <textarea name="message" cols="40" rows="6" wrap="physical" style="width: 100%" ></textarea><br>
<br>
<input type="submit" value="'.$submit_title.'" >
</td></tr></tbody></table></form>';
}
echo $tekst_glowny;


?></blockquote>
</td>
</tr>
</table>

<?php
// koniec kodu

?>
Wypełnić należdy tylko odpowiednie miejsca w kodzie:

Kod: Zaznacz cały

// od kogo ma pójść mail - tu musi być jakies konto na serwerze z którego korzystasz.
$mail_from = "admin@domena.pl";

Kod: Zaznacz cały

// do kogo ma pójść mail - czyli kto zajmie się obsluga danych
$mail_to = "admin@domena.pl";

Awatar użytkownika
eewcia
Posty: 3
Rejestracja: 04 wrz 2015, 16:15

Re: Formularz kontaktowy w PHP

Post autor: eewcia » 04 wrz 2015, 19:24

Moze wiesz dlaczego ten PHPek nie przesyła mi tekstu wprowadzonego w textarea? Wszystko jest w przesłanym e-mailu tylko "message" nie ma , wyświetla sie tylko "Message:" i pusto. :(

Kod: Zaznacz cały

<?php
  $name=addslashes($_POST['name']);
  $subject=addslashes($_POST['subject']);
  $email=addslashes($_POST['email']);
  $comments=addslashes($_POST['message']);

----------------------------

  $toemail = "xxx@wp.pl";
  $subject = "xxx";

  $headers = "MIME-Version: 1.0\n"
            ."From: \"".$name."\" <".$email.">\n"
            ."Content-type: text/html; charset=iso-8859-1\n";

  $body ="";
  $body .= "Name:".$name."<br>\n";
    $body .="Subject:".$subject."<br>\n";
      $body .="Email:".$email."<br>\n";
        $body .="Message:".$message."<br>\n";
           

  if (!ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $email))
  {
    echo "That is not a valid email address.  Please return to the"
           ." previous page and try again.";
    exit;
  }

    mail($toemail, $subject, $body, $headers);
    echo "Thanks for submitting your comments";
?>

ODPOWIEDZ