Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wysyłaniem emaila
Forum PHP.pl > Forum > PHP
Sadu2
Witam,
Mam oto taki kod:

  1. <!-- Formularz kontaktowy - contact.php -->
  2. <form ACTION="contact.php" method="post">
  3. <B>Imię:</B><BR> <input TYPE="text" size="30" name="imie"><BR>
  4. <B>Twój adres e-mail:</B><BR> <input TYPE="text" size="30" name="email"><BR>
  5. <B>Wybierz adresata:</B><BR>
  6. <select name="adresat">
  7. <option value="admin@domena.pl">Admin Strony</option>
  8. <option value="sadu@domena.pl">Dyrektor Klubu - Sadu</option>
  9. </SELECT><BR>
  10. <B>Temat:</B><BR> <input TYPE="text" size="30" name="temat"><BR>
  11. <B>Treść:</B><BR> <textarea name="tresc" rows="7" cols="40"></TEXTAREA><BR>
  12. <input TYPE="submit" name"wyslij" value="Wyślij">
  13. </FORM>
  14.  
  15. <?
  16. $imie = $_POST['imie'];
  17. $tresc = $_POST['tresc'];
  18. $temat = $_POST['temat'];
  19. $adresat = $_POST['adresat'];
  20.  
  21. $formsent = mail($adresat, $temat, 
  22. "Od: $imiern
  23. Tresc: 
  24.  
  25. $trescrn", 
  26. "From: $emailrnBounce-to: admin@domena.pl");
  27.  
  28.  
  29. if ($formsent) {
  30. echo "<P>Witamy $imie. Twój e-mail został wysłany!</P>";
  31.  
  32. } else {
  33.  
  34. echo "Przepraszamy, wystąpił problem z wysyłaniem. Proszę spróbować jeszcze raz";
  35. }
  36. ?>


Problem polega na tym, że jak wchodzę na stronę z tym formularzem, to odrazu mi wysyła maila i pisze:

Witamy $imie. Twój e-mail został wysłany!

Jak temu zaradzić? Żeby wysyłało po naciśnięciu "Wyślij" ? Wszystko inne działa.
Pozdrawiam
Void
W kodzie PHP dodaj warunek sprawdzający, czy został naciśnięty submit o nazwie "wyslij" (będzie wtedy istniała zmienna $_POST['wyslij']. Jeżeli tak, to wykonujesz kod (pobierasz zmienne, wysyłasz maila).

  1. <?php
  2. if (isset($_POST['wyslij'])) {
  3.  
  4. $imie = $_POST['imie'];
  5. $tresc = $_POST['tresc'];
  6. $temat = $_POST['temat'];
  7. $adresat = $_POST['adresat'];
  8.  
  9. $formsent = mail($adresat, $temat, 
  10. "Od: $imiern
  11. Tresc: 
  12.  
  13. $trescrn", 
  14. "From: $emailrnBounce-to: admin@domena.pl");
  15.  
  16.  
  17. if ($formsent) {
  18. echo "<P>Witamy $imie. Twój e-mail został wysłany!</P>";
  19.  
  20. } else {
  21.  
  22. echo "Przepraszamy, wystąpił problem z wysyłaniem. Proszę spróbować jeszcze raz";
  23. }
  24.  
  25. }
  26. ?>
Sadu2
Zrobiłem tak jak mówiłeś, ale żadnej reakcji nie było, nie wysyła sie email ani nie pojawia sie żaden komunikat. Zrobiłem coś takiego:

  1. <!-- Formularz kontaktowy - contact.php -->
  2. <form ACTION="contact.php" method="post">
  3. <B>Imię:</B><BR> <input TYPE="text" size="30" name="imie"><BR>
  4. <B>Twój adres e-mail:</B><BR> <input TYPE="text" size="30" name="email"><BR>
  5. <B>Wybierz adresata:</B><BR>
  6. <select name="adresat">
  7. <option value="admin@bronradom.pl">Admin Strony</option>
  8. <option value="sadu@centrum-radom.net">Dyrektor Klubu - Robert Muszyński</option>
  9. </SELECT><BR>
  10. <B>Temat:</B><BR> <input TYPE="text" size="30" name="temat"><BR>
  11. <B>Treść:</B><BR> <textarea name="tresc" rows="7" cols="40"></TEXTAREA><BR>
  12. <input TYPE="submit" name"wyslij" value="Wyślij">
  13. </FORM>
  14.  
  15. <?
  16.  
  17. $imie = $_POST['imie'];
  18. $tresc = $_POST['tresc'];
  19. $temat = $_POST['temat'];
  20. $adresat = $_POST['adresat'];
  21.  
  22. $wyslij = mail($adresat, $temat, 
  23. "Od: $imiern
  24. Tresc: 
  25.  
  26. $trescrn", 
  27. "From: $emailrnBounce-to: admin@bronradom.pl");
  28.  
  29.  
  30. if ($wyslij) {
  31.  
  32. echo "<P>$imie Twój e-mail został wysłany!</P>";
  33.  
  34. } else {
  35.  
  36. echo "Przepraszamy, wystąpił problem z wysyłaniem. Proszę spróbować jeszcze raz";
  37. }
  38. ?>


I tym razem nie wysyła odrazu, lecz gdy kilkne na wyślij, ale odrazu pojawia mi sie ten komunikat:

Przepraszamy, wystąpił problem z wysyłaniem. Proszę spróbować jeszcze raz
Glarden
Możliwe, że masz złą konfigurację serva albo inne takie dziadostwa. Lepiej zaopatrz się w klasę PHPMailer, jest o wiele lepsza niż zwykła funkcja mail().
Sadu2
Serwer jest dobrze skonfigurowany smile.gif
Glarden
Kurczę, znowu nie doczytałem. Muszę się pilnować:)
Musisz zrobić tak:
  1. <?php
  2. if (isset ($_POST['imie']) && ($_POST['email']) && ($_POST['adresat']) && ($_POST['temat'])) {
  3. mail(cośtam, cośtam); // po prostu instrukcje wysyłające
  4. }
  5. ?>

I tyle.
Sadu2
Dzięki działa dobrze biggrin.gif A teraz jak moge zrobić takie coś, że jak ktoś wpisze w email np. jkasdasd to pojawi sie wiadomość, że podano zły email?
cicik
Cytat(Sadu2 @ 18.06.2007, 20:37:59 ) *
Dzięki działa dobrze biggrin.gif A teraz jak moge zrobić takie coś, że jak ktoś wpisze w email np. jkasdasd to pojawi sie wiadomość, że podano zły email?


1. Wchodzisz na www.php.net.
2. U góry jest wyszukiwarka.
3. Wpisz w nią słowo preg.
4. Naciśnij enter.
Glarden
"Walidacja maila" wpisz w google. Możesz też poszukać w manualu, bo jest sporo na ten temat.
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.