Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Formularz do wysylania maili
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam ponownie. Mam problem z formularzem do wysylania maili.Otoz dziala, maile dochodza tam gdzie maja ale po wyslaniu wywala mi tez taki blad:

Warning: Invalid argument supplied for foreach() in /usr/share/php/mail.php on line 13

A to kod formularza:
  1. $wyslij_do = 'adres@adres.pl';
  2. $prefix_wiadomosci = '[http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).' - Formularz kontaktowy]';
  3. if($_GET['a'] == 'wysylanie')
  4. {
  5. $nadawca = trim(strip_tags($_POST['nadawca']));
  6. $mail_nadawcy = trim(strip_tags($_POST['mail_nadawcy']));
  7. $tytul_wiadomosci = trim(strip_tags($_POST['tytul_wiadomosci']));
  8. $wiadomosc = trim(strip_tags($_POST['wiadomosc']));
  9.  
  10. if(empty($nadawca) || empty($mail_nadawcy) || empty($tytul_wiadomosci) || empty($wiadomosc)) $komunikat = 'Pola_niewypelnione';
  11. else
  12. {
  13. $wysylanie = mail($wyslij_do, $prefix_wiadomosci.' '.$tytul_wiadomosci, $wiadomosc, "From: ".$mail_nadawcy."nReply-to: ".$mail_nadawcy."nContent-type: text/plain; charset=iso-8859-2nContent-transfer-encoding: 8bit");
  14. if($wysylanie) $komunikat = 'Mail_wyslany';
  15. else $komunikat = 'Mail_nie_wyslany';
  16. }
  17. }
  18. ?>
  19. <form action="kontakt.php?a=wysylanie" method="post">
  20. <ul>
  21. <li><label for="imie">Imię:</label>
  22. <input type="text" name="nadawca" value="<? echo $nadawca; ?>" id="imie" /></li>
  23.  
  24. <li><label for="email">E-mail:</label>
  25. <input type="text" name="mail_nadawcy" value="<? echo $mail_nadawcy; ?>" /></li>
  26.  
  27. <li><label for="tel">Tytuł:</label>
  28. <input type="text" name="tytul_wiadomosci" value="<? echo $tytul_wiadomosci; ?>" /></li>
  29.  
  30. <li><label for="tresc">Treść:</label>
  31. <textarea name="wiadomosc"><? echo $wiadomosc; ?></textarea></li>
  32.  
  33. <li><input id="wysylanie" type="submit" value="Wyślij" /></li>
  34. </ul>
  35. </form>
  36. <?
  37. switch($komunikat)
  38. {
  39. case 'Pola_niewypelnione' :
  40. echo '<b>Nie wypełniono wszystkich pól. Wiadomość nie została wysłana</b>';
  41. break;
  42. case 'Mail_wyslany' :
  43. echo '<b>Wiadomość została wysłana.</b>';
  44. break;
  45. case 'Mail_nie_wyslany' :
  46. echo '<b>Wystąpił bład podczas wysyłania wiadomości. Wiadomość nie została wysłana.</b>';
  47. break;
  48. }
  49. ?>

Z komunikatu wynika, ze blad jest chyba w tej linijce:
  1. <?php
  2. $wysylanie = mail($wyslij_do, $prefix_wiadomosci.' '.$tytul_wiadomosci, $wiadomosc, "From: ".$mail_nadawcy."nReply-to: ".$mail_nadawcy."nContent-type: text/plain;
  3. ?>

Ale nie wiem co tu moze byc nie tak.../ Moze cos poradzicie na to? Pozdrawiam
FliSs_tCv
Siemanko smile.gif moze loknij sobie na to smile.gif u mnie dziala bez problemikow smile.gif

  1. <?
  2. include("phpmailer/class.phpmailer.php");
  3.  
  4. $list = new phpmailer(); // tworzę obiekt list
  5. $list->IsSMTP(); // ustawiam metodę wysyłania poczty przez serwer SMTP
  6. $list->Host = "smtp.mojserwer.pl"; // adres serwera SMTP
  7.  
  8. // $list->SMTPAuth = true; // jeżeli serwer wymaga autoryzacji
  9. // $list->Username = "login"; // login dla serwera
  10. // $list->Password = "hasło"; // hasło dla serwera
  11.  
  12. $list->From  = "nadawca@serwer.pl";  // adres nadawcy
  13. $list->FromName = "Jan Kowalski"; // nazwa nadawcy
  14. $list->AddAddress("odbiorca@serwer.pl"); // odbiorca
  15. $list->AddAddress("odbiorca2@serwer.pl", "Anka"); // drugi odbiorca z nazwą
  16.  
  17. $list->Subject = "Tytuł listu"; // tytuł listu
  18. $list->WordWrap = 75; // linie będą przełamywane po 75 znakach
  19. $list->Body  = "Witaj! nn Treść listu";
  20.  
  21. $list->Send(); // wysłanie listu
  22.  
  23. // lub sprawdzenie czy został poprawnie wysłany:
  24. // if ($list->Send()) echo "List został wysłany";
  25. // else echo "Nie udało się wysłać listu! Błąd: ".$list->ErrorInfo;
  26. ?>


pozdro smile.gif
huliomix
ja prubóje włączyć test phpmail który dołączony Jest to paczki i nie działa mi;( co moze być nie tak ?(dodałem też scieżke w php.ini)
TomASS
A to jest na bank CAŁY PLIK? Czy linia 13 to:

  1. <?php
  2. $wysylanie = mail($wyslij_do, $prefix_wiadomosci.' '.$tytul_wiadomosci, $wiadomosc, "From: ".$mail_nadawcy."nReply-to: ".$mail_nadawcy."nContent-type: text/plain; charset=iso-8859-2nContent-transfer-encoding: 8bit");
  3. ?>



Z błędu wynika że problem leży w strukturze foreach, której u Ciebie nie widzę :/


Cytat
Siemanko moze loknij sobie na to u mnie dziala bez problemikow

No tak - tylko trzeba mieć plik klasy phpmailer
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.