Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja php mail stały tekst html + zmienne
Forum PHP.pl > Forum > PHP
ajoxo0
Witam. Mam taki scrypt do wysyłania wiadomości poprzez funkcję mail()

  1. <?php
  2. if (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  3. $message = "
  4.  
  5. <span> Skorzystaj sie $_POST[tresc]</span></a>
  6. <br />xxxx <br />xxx<br />xxx <br />800 200 900 <br /><a href="mailto:xxx">xxxxx</a>
  7.  
  8. <h1 asd </h1> ści:\n\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  9. $headers = 'MIME-Version: 1.0' . "r\n";
  10. $headers .= 'Content-type: text/html; charset=iso-8859-2' . "r\n"; //lub utf-8 itd.
  11. $maill ="$_POST[email]";
  12. @mail("$maill","Wiadomość ze strony WWW","$message","$headers")
  13. or die('Nie udało się wysłać wiadomości');
  14. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  15. }
  16. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  17. ?>


Jestem świeży w temacie, robię własną stronę WWW. Chciał bym wstawić stały html w formularzu i w odpowiednich miejscach wpisać do niego zmienne pobierane ze strony która wysyła formularz. Niby wszystko działa ale tylko po wpisaniu prostego html np <h1> xx </h1> wtedy wiadomośc się wysyła, jak zrobię jakiś bardziej zaawansowany wpis html formularz w ogóle się nie wysyła ani nie zwraca żadnego błędu. Po prostu wywala białą stronę. Wszystko działa poprawnie tylko wtedy gdy wpiszę zaawanswany tekst html i wyślę go poprzez formularz ale w takim przypadku nie mogę użyć zmiennych pobranych właśnie z tego formularza. Ma ktoś jakiś pomysł jak by to rozwiązać ?
Tomplus
Sprawdź jakie wartości trafiają ci do formularza:

  1. vare_dump($_POST);


Przeanalizuj czy wszystkie wartości spełniają warunek:

  1. if (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email']))


a potem:

Usuń @ przed mail()

A do funkcji email nie potrzeba wstawiać n-ty raz "" po prostu:

  1. if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
  2. mail($_POST['email'], $trescWiadomosci, $header);
  3. }


Tyle wystarczy.

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.