Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz smtp
Forum PHP.pl > Forum > Przedszkole
lukaszm89
Witam, jestem nowy na forum i nie jestem specjalistą w php więc proszę o wyrozumiałość. Do tej pory używałem serwera na którym działała funkcja mail i nie mialem problemów z formularzem. Teraz mam serwer na home.pl i tam funkcja mail jest zablokowana. Znalazłem w internecie wzór formularza który korzysta powinien korzystać z smtp, ale mimo wszystko przy probie wysyłki otrzymuję komunikat: "Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera. Błąd wysyłania: Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera."

Proszę o pomoc, poniżej zamieszczam skrypt pliku kontakt.php, proszę o pomoc, nie wiem gdzie jest błąd ... wygląda na to że gdzieś w poniższym kodzie zamiast smtp jest włączona funkcja mail, a według opisu powinien korzystać z smtp. Jeśli ktoś miałby inny formularz korzystający z smtp jestem zainteresowany nawet kupnem happy.gif

  1. <html>
  2.  
  3. <head>
  4. <title>Przykładowy formularz kontaktowy</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script language="JavaScript" src="javavalid/gen_validatorv2.js" type="text/javascript"></script>
  7. </head>
  8.  
  9. <body style="font-family: arial;">
  10.  
  11.  
  12. <?php
  13. // jesli formularz został zgłoszony - przetwarzamy go
  14. if ($_POST['wyslij']) {
  15.  
  16. if ( !$_POST['tresc'] OR !$_POST['podpis'] OR !$_POST['email'] ) { echo "Błąd. Puste pola!"; break; }// coś poszło nie tak
  17.  
  18. $tresc = $_POST['tresc'];
  19. $podpis = $_POST['podpis'];
  20. $email = $_POST['email'];
  21.  
  22. $adresat = $_POST['adresat'];
  23. // mozesz tu zdefiniowac adres na sztywno np $adresat = "zuzia@serwer342.pl";
  24. // usun wtedy ponizsze sprawdzenie
  25.  
  26. $dozwolone_adresy = "info@xxx.pl";
  27. if (strpos($dozwolone_adresy,$adresat)===false) { echo "Niedozwolony adresat! $adresat"; break; }
  28.  
  29.  
  30. // utnij zbyt długą treść i podpis
  31. if ( strlen($tresc) > 2000 ) $tresc = substr($tresc, 0, 2000);
  32. if ( strlen($podpis) > 40 ) $podpis = substr($podpis, 0, 40);
  33. if ( strlen($email) > 60 ) $email = substr($email, 0, 60);
  34.  
  35. if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)) { echo "Niepoprawny adres email!"; break; }
  36.  
  37.  
  38.  
  39. // koniec sprawdzania, wysylamy emaila
  40.  
  41. require_once('phpmailerx/class.phpmailer.php');
  42.  
  43. $mail = new PHPMailer();
  44. $mail->IsSMTP(); // send via SMTP
  45. $mail->SMTPAuth = true; // turn on SMTP authentication
  46. $mail->Host = "home.pl";
  47. $mail->Port = 465;
  48. $mail->Mailer= "serwer1521494.home.pl";
  49. $mail->Username = "biuro@xxx.pl"; // SMTP username
  50. $mail->Password = "xxxxxxx"; // SMTP password
  51. $mail->AddReplyTo ($email, $podpis);
  52. $mail->From = $email;
  53. $mail->FromName = $podpis;
  54. $mail->Subject = "Ze strony od: $podpis";
  55. $mail->Body = $tresc;
  56. $mail->WordWrap = 50;
  57. $mail->AddAddress ($adresat);
  58. // $mail->IsHTML (true);
  59. $mail->SetLanguage("pl", "phpmailerx/language/");
  60. $mail->CharSet = 'utf-8';
  61.  
  62. if(!$mail->Send())
  63. { echo "Błąd wysyłania: " . $mail->ErrorInfo; }
  64. else
  65. { echo "Wiadomość została wysłana. <a href=\"./kontakt.php\">Powrót do formularza</a>"; }
  66.  
  67. } // koniec if-a przetwarzajacego formularz
  68.  
  69. // jeśli nie zgłoszono jeszcze formularza - wyświetlamy go
  70. else
  71. {
  72. ?>
  73.  
  74.  
  75. <form action="kontakt.php" method="post" name="formularz_kontaktowy">
  76. <h2>Formularz kontaktowy</h2>
  77. <br />
  78.  
  79. <label for="podpis">Podpis: </label>
  80. <input id="podpis" type="text" name="podpis" /><br /><br />
  81.  
  82. <label for="email" >Email: </label>
  83. <input id="email" type="text" name="email" /><br /><br />
  84.  
  85. <textarea style="width:260px; height: 160px; " name="tresc" ></textarea><br /><br />
  86.  
  87. <!-- Jeśli adresat ma być tylko jeden, usuń poniższe 4 linijki
  88. i wpisz adresata na sztywno w kodzie na górze strony -->
  89. Zapytanie dotyczy:<br />
  90. <input type="radio" name="adresat" value="info@xxx.pl" checked="checked" />Wybor 1<br />
  91. <input type="radio" name="adresat" value="info@xxx.pl" />Wybor 2<br />
  92. <input type="radio" name="adresat" value="info@xxx.pl" />Wybor 3<br />
  93. <input type="radio" name="adresat" value="info@xxx.pl" />Wybor 4<br />
  94. <input type="radio" name="adresat" value="info@xxx.pl" />Wybor 5<br />
  95.  
  96. <br />
  97.  
  98. <input class="wysylacz" type="submit" name="wyslij" value="Wyślij" />
  99. </form>
  100.  
  101. <script language="JavaScript">
  102. var sprawdzacz = new Validator("formularz_kontaktowy");
  103. sprawdzacz.addValidation("podpis","req","Wprowadź podpis");
  104. sprawdzacz.addValidation("podpis","maxlen=40","Podpis nie może być dłuższy niż 40 znaków");
  105.  
  106. sprawdzacz.addValidation("email","req","Podaj adres e-mail w polu pod podpisem");
  107. sprawdzacz.addValidation("email","maxlen=60","Błąd - adres e-mail dłuższy niż 60 znaków");
  108. sprawdzacz.addValidation("email","email","Niepoprawny adres e-mail");
  109.  
  110. sprawdzacz.addValidation("tresc","maxlen=2000","Formularz nie przyjmuje wiadomości dłuższych niż 2000 znaków");
  111. sprawdzacz.addValidation("tresc","req","Wprowadź treść zapytania");
  112. </script>
  113.  
  114.  
  115. <?php } ?>
  116.  
  117. </body>
  118.  
  119. </html>
  120.  
Beniooo
Sorki za offtopic, ale czemu w mail maxlen=60?
Co z moim adresem god910@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com ? :C
lukaszm89
Drobny szczegół, a tak poza tym jest ktoś w stanie mi pomóc? closedeyes.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.