Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] formularz i wysłanie kopii do nadawcy
Forum PHP.pl > Forum > Przedszkole
bary77
Witam wszystkich. Domyślam się, że temat pewnie był już wałkowany ale naprawdę sporo szukałem na tym i na innych forach i nie znalazłem odpowiedzi rozwiązującej mój problem. W PHP jestem zieloniutki, swój formularz zapożyczyłem z sieci i dostosowałem go do swoich potrzeb oraz dołączyłem sprawdzanie poprawności e-maila. Potrzebuję jeszcze dołożyć opcję wysyłania kopii wiadomości do nadawcy e-maila z odpowiednią treścią (inną niż przychodzi do mnie). W innych postach znalazłem rady aby dopisać po prostu pod funkcją mail drugie jej wywołanie z innym adresem (zmienną) ale niestety u mnie nie chce to działać. Błąd UNEXPECTED @ lub jeśli mail bez @ to wtedy UNEXPECTED STRING.

Funkcja mail wygląda u mnie następująco:

Kod
@mail("moj@email.pl","Wiadomość ze strony www","$message","$header")


zmienna odpowiadająca za adres e-mail nadawcy to $email.
W jaki sposób dołączyć do mojego formularza opcję wysyłki potwierdzenia do nadawcy meila?
guilty82
Pokaz wiecej kodu, bo ta "funkcja" to troche za malo..

Czytales manuala? mail()
webasek
  1. <?php
  2. @mail("moj@email.pl","Wiadomość ze strony www","$message","$header")
  3. ?>

brak średnika powinno być
  1. <?php
  2. @mail("moj@email.pl","Wiadomość ze strony www","$message","$header");
  3. ?>

i wtedy daj jedno pod drugim i będzie działać.
Po za tym zawsze możesz skorzystać z BCC
lub do mail dodać drugiego odbiorcę
W obu jednak przypadkach wyślesz tą samą wiadomość dwa razy co więcej w drugim będą widoczne dwa adresy email.
Maxik
Dobra rada: nie obejmuj zmiennych cudzysłowem.
bary77
Coś źle robię lub czegoś nie rozumiem bo nie chce u mnie zadziałać. Zrobiłem dokładnie tak:
  1. <?php
  2. @mail("moj@email.pl","Wiadomość ze strony www","$message","$header");
  3. @mail("$email","Potwierdzenie wysłania wiadomości","$message","$header")
  4. ?>


W takiej formie niestety meile nie przychodzą na adres nadawcy i wyskakuje "nie udało się wysłać wiadomości".
  1. <?php
  2. or die('Nie udało się wysłać wiadomości');
  3. ?>


Nie przychodzą również gdy wykasuję cudzysłowy "".
Jak dokładnie powinna wyglądać na funkcja w drugiej linii?
webasek
gdzie stosujesz to die? Napisz więcej kodu cały, który służy do wysyłki, może spróbuj tak

  1. <?php
  2. @mail("moj@email.pl","Wiadomość ze strony www",$message,$header) or die("nie udało się 1");
  3. @mail($email,"Potwierdzenie wysłania wiadomości",$message,$header) or die("nie udało się 2");
  4. ?>


i napisz co wyjdzie
JarCzeS
Cytat(webasek @ 17.10.2008, 16:11:44 ) *
gdzie stosujesz to die? Napisz więcej kodu cały, który służy do wysyłki, może spróbuj tak

  1. <?php
  2. @mail(&#092;"moj@email.pl\",\"Wiadomość ze strony www\",$message,$header) or die(\"nie udało się 1\");
  3. @mail($email,&#092;"Potwierdzenie wysłania wiadomości\",$message,$header) or die(\"nie udało się 2\");
  4. ?>


i napisz co wyjdzie


usun malpy przed mail i napisz co ci zwraca funkcja i czy sie wysyla, byc mzoe w $headers masz cos zle
  1. <?php
  2. mail('moj@email.pl','Wiadomość ze strony www','test');
  3. ?>
bary77
Zrobiłem jak napisaliście - wywala błąd "nie udało się 2" czyli chodzi o drugą dopisaną linię.
Po usunięciu małp przed mail tak samo (nie ma znaczenia czy małpa jest czy nie ma).
Wklejam cały mój kod:
  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4.    // wyświetlamy formularz
  5. echo "<table border=\"0\"><form method=\"post\">
  6. <tr>
  7. <td>&nbsp;&nbsp;</td>
  8. <TD WIDTH=150 bgcolor=\"#C0C0C0\"><b><font face=\"MS Sans Serif\" size=\"1\">Imię i nazwisko:</font></b></TD>
  9. <td><input type=\"text\" name=\"imie\" style=\"width: 350px\"></td>
  10. </tr>
  11. <tr>
  12. <td>&nbsp;&nbsp;</td>
  13. <TD WIDTH=150 bgcolor=\"#C0C0C0\"><b><font face=\"MS Sans Serif\" size=\"1\">Adres e-mail:</font></b></TD>
  14. <td><input type=\"text\" name=\"email\" style=\"width: 350px\"></td>
  15. </tr>
  16. <tr>
  17. <td>&nbsp;&nbsp;</td>
  18. <TD WIDTH=150 bgcolor=\"#C0C0C0\"><b><font face=\"MS Sans Serif\" size=\"1\">Pytanie:</font></b></TD>
  19. <td><textarea name=\"tresc\" style=\"width: 350px; height: 60px\"></textarea></td>
  20. </tr>
  21. <tr>
  22. <td>&nbsp;&nbsp;</td>
  23. <td>&nbsp;&nbsp;</td>
  24. <td><center><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;&nbsp;
  25. <input type=\"reset\" value=\"Wyczyść\"></center></td>
  26. </form>
  27. </tr>
  28. </table>";
  29. }
  30. // sprawdzamy poprawnosc adresu e-mail
  31. elseif (!preg_match('/^[a-z0-9&'.-_+]+@[a-z0-9-]+.([a-z0-9-]+.)*?[a-z]+$/is', $_POST['email']))
  32. echo "<div align=\"center\"><strong>Podany adres e-mail jest nieprawidłowy! Wpisz poprawny adres e-mail<br>
  33. <a href=\"java script:;\" onClick=\"history.back()\">Powrót do wypełniania formularza</a></strong></div>";
  34.  
  35. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  36. elseif (!empty($_POST['imie']) && !empty($_POST['email']) && !empty($_POST['tresc'])) {
  37.    // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  38.    // zmienna $message zawiera treść wiadomości
  39.    $message = "Wysłał:$_POST[imie]\ne-mail:$_POST[email]\nPytanie:$_POST[tresc]";
  40.    // zmienna $header zawiera przede wszystkim adres zwrotny
  41.    $header = "From: $_POST[imie] <$_POST[email]>";
  42.    // funkcja mail() za pomocą której wiadomość zostanie wysłana
  43.    mail("moj@adres.pl","Wiadomość ze strony www",$message,$header) or die('Nie udało się wysłać wiadomości 1');
  44.    mail($email,"Potwierdzenie wysłania wiadomości ze strony www",$message,$header) or die('Nie udało się wysłać wiadomości 2');
  45.    
  46.    // wyświetlenie komunikatu w przypadku powodzenia
  47.    echo "<div align=\"center\"><strong>Wiadomość została wysłana - Dziękujemy<a href=\"java script:;\" onClick=\"history.back()\"><br>Wyślij jeszcze jedną wiadomość</a></strong></div>";
  48. }
  49. // lub w przypadku nie wypełnienia formularza do końca
  50. else echo "<div align=\"center\"><strong>Nie wypełniono wszystkich wymaganych pól!<br>
  51. <a href=\"java script:;\" onClick=\"history.back()\">Powrót do wypełniania formularza</a></strong></div>";
  52. ?>


Przepraszam, że podbijam ale bardzo zależy mi na rozwiązaniu mojego problemu, a sam nie mogę sobie z nim poradzić. Jak przerobić kod aby nadawca otrzymał potwierdzenie wysłania formularza, najlepiej innej treści niż ja dostaje (np.zmienna &messagenadawcy). Kod powyżej. Z góry wszystkim dziękuje za poświęcony czas.
k37
  1. $email
nie istnieje?


  1. $email = $_POST['email'];




(Co prawda stary temat, ale może komuś się przyda)
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.