Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]formularz wysyłający e-mail
Forum PHP.pl > Forum > Przedszkole
karlkar
Mam taki skrypt:
  1. <?php 
  2.  
  3. if (($_POST['nick'] == "") || ($_POST['email'] == "") || ($_POST['tresc'] == "")) 
  4. { 
  5. echo "<form name="form" method="post" action="mail.php">"; 
  6. echo "Nie wypełniłeś wszystkich pól formularza... uzupełnij brakujące pola<br>"; 
  7. } 
  8. if ($_POST['nick'] == "") 
  9. { 
  10. echo "Podaj swój nick na serwerze:<br><input type="text" name="nick"><br>"; 
  11. } 
  12. else 
  13. { 
  14. echo "<input type="hidden" name="nick" value="".$_POST['nick']."">"; 
  15. } 
  16. if ($_POST['email'] == "") 
  17. { 
  18. echo "Podaj swój email:<br><input type="text" name="email"><br>"; 
  19. } 
  20. else 
  21. { 
  22. echo "<input type="hidden" name="email" value="".$_POST['email']."">"; 
  23. } 
  24. if ($_POST['wtf'] == "") 
  25. {echo "Hax";} 
  26. else 
  27. { 
  28. echo "<input type="hidden" name="wtf" value="".$_POST['wtf']."">"; 
  29. } 
  30. if ($_POST['tresc'] == "") 
  31. { 
  32. echo "Treść wiadomości:<br><textarea name="tresc" rows="5" cols="40"></textarea><br>"; 
  33. } 
  34. else 
  35. { 
  36. echo "<input type="hidden" name="tresc" value="".$_POST['tresc']."">"; 
  37. } 
  38.  
  39. if (($_POST['nick'] == "") || ($_POST['email'] == "") || ($_POST['tresc'] == "")) 
  40. { 
  41. echo "<input type="submit" name="submit" value="wyślij">"; 
  42. echo "<input type="reset" name="reset" value="od nowa">"; 
  43. echo "</form>"; 
  44. } 
  45. else 
  46. { 
  47. $wiadomosc = "Nick: ".$_POST['nick']." nEmail: ".$_POST['email']." nTreść wiadomości:n".$_POST['tresc']." n"; 
  48. $header = "From: ".$_POST['nick']."rnReply-To: ".$_POST['email']."rn"; 
  49. mail ("karex-dyn-pl@tlen.pl", "berek", $wiadomosc) or die('Nie udało sie wysłać maila'); 
  50. echo "Dzięki za wypełnienie formularza ".$_POST['nick']; 
  51. } 
  52. ?>


I wywala mi ciągle że nie udało się wysłać maila. Słyszałem że to może być wina ustawień php - nie grzebałem tam, więc nei wiem... co zrobić?
Spanner
chłopie lepiej przepisz to od nowa jeszcze raz, bo tak namotałeś z tymi warunkami, że ciężko się połapać wogóle o co w tym chodzi, niepotrzebnie dajesz aż tyle warunków
karlkar
Ale problem nie tkwi w liczbie warunków ^^ Mimo to - proszę oto uproszczona wersja

mail.php
  1. <?php 
  2.  
  3. $wiadomosc = "Nick: ".$_POST['nick']." nEmail: ".$_POST['email']." nTreść wiadomości:n".$_POST['tresc']." n"; 
  4. $header = "From: ".$_POST['nick']."rnReply-To: ".$_POST['email']."rn"; 
  5. mail ("karex-dyn-pl@tlen.pl", "berek", $wiadomosc, $header) or die('Nie udało sie wysłać maila'); 
  6. echo "Dzięki za wypełnienie formularza ".$_POST['nick']; 
  7. } 
  8. ?>


a oto plik z którego dane są wysyłane:
index1.html
  1. <form method="post" action="mail.php">
  2. <div>Twój nick na serwerze: </div><div><input type="text" name="nick"></div><br>
  3. <div>Twój e-mail: </div><div><input type="text" name="email"></div><br>
  4. <div>Temat: </div><div><select name="wtf">
  5. <option>Zgłoszenie na admina</option>
  6. <option>Propozycja</option>
  7. <option>Zgłoszenie buga</option>
  8. <option>Inne</option>
  9. </select></div>
  10. <br><div>Treść wiadomości:</div><div> <textarea name="tresc"></textarea></div><br>
  11. <input type="submit" value="Wyślij"><input type="reset" value="Wyczyść">
  12. </form>
Cezar708
Przede wszystkim musisz w php.ini ustawić poprawnie SERWER SMTP, są to między innymi parametry:

SMTP, smtp_port, sendmail_path ... etc,

zwykle jak korzystasz z serwera juz administrowanego to jest to ustawione, jak po prostu zainstalowałeś np krasnala albo AppSerw na swoim windowsie to trza to recznie ustawic i zrestartować serwer.

wiecej pod: phpmanual:mail
karlkar
ok. Zrobiłęm coś takiego... Nadal nie działa...

  1. <?php
  2. [mail function]
  3. ; For Win32 only.
  4. SMTP = "poczta.o2.pl"
  5. smtp_port = "25"
  6. sendmail_from = NULL
  7. sendmail_path = NULL
  8. ?>
KolegS
testujesz to na swoim kompie jeśli tak nie musisz instalować tego na swoim kompie wystarczy skorzystać z klasy phpmailer i możesz wysyłać poczte przez np smtp.wp.pl
więcej informacji możesz znaleźć na www.phpedia.pl wpisując phpmailer
karlkar
zrobiłem to co kolegs powiedział i teraz wywala błąd że nieprawidłowy odbiorca...
  1. <HTML>
  2. <HEAD>
  3. <TITLE>..:[karex.dyn.PL]Ultimate Warcraft 3 [SAVEXP]:..</TITLE>
  4.  
  5. </HEAD>
  6.  
  7. <body bgcolor="black">
  8. <center><br>
  9. <font color="white">
  10. <?php 
  11.  
  12. require("phpmailer/class.phpmailer.php");
  13.  
  14. $mail = new PHPMailer();
  15. $mail->PluginDir = "phpmailer/";
  16. $mail->From = "karex-dyn-pl@tlen.pl";
  17. $mail->FromName = $_POST['nick'];
  18. $mail->Host = "poczta.o2.pl";
  19. $mail->Mailer = "smtp";
  20. $mail->Username = "karex-dyn-pl";
  21. $mail->Password = "dsadsadsa";
  22. $mail->SMTPAuth = true;
  23. $mail->SetLanguage("pl", "phpmailer/language/");
  24.  
  25. $mail->Subject = $_POST['wtf'];
  26. $mail->Body = $_POST['tresc'];
  27. $mail->AddAddress("karex-dyn-pl@tlen.pl", "Karex");
  28. if($mail->Send())
  29. {
  30. echo 'E-mail został wysłany';
  31. }
  32. else
  33. {
  34. echo 'E-mail nie mógł zostać wysłany, przyczyna :'. $mail->ErrorInfo;
  35. }
  36. $mail->ClearAddresses();
  37. $mail->ClearAttachments();
  38. ?>
  39.  
  40. </html>


____
Proszę używać BB Code
ActivePlayer
KolegS
a ściągnąłeś sobie pierw tą klasę ze strony??
a i jeszcze jedno może spróbuj jako swojego maila podać zamiast @tlen.pl @o2.pl
karlkar
tak - ściągnąłem. po zmianie na o2.pl też nie działa :/
KolegS
trochę mnie to dziwi ale w jakim celu wysyłasz do siebie maile widocznie w tej klasie tak zawsze jest jak się próbuje wysłać do siebie
radze założyć drugiego maila jednego do wysyłania a drugiego do odbierania maili
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.