Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ponowna prośba o pomoc w sprawie formularza
Forum PHP.pl > Forum > Przedszkole
cachaito
Witam ponownie!

Jeszcze raz dziękuję za wcześniejszą pomoc ale znów mam duży problem z moim formularzem i znów liczę na Waszą pomoc. Otóż w tym formularzu:

  1. <?php
  2. if(isset($_POST['submit'])){
  3. if(empty($_POST['fromname'])){
  4.  
  5.   echo 'Nie wypełniłeś pola danych osobistych';
  6.  
  7. }
  8. elseif(empty($_POST['fromemail']))
  9. {
  10.  
  11.   echo 'Nie podałeś(aś) swojego email'a';
  12.  
  13. }
  14. elseif(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST['fromemail']))
  15. {
  16.  
  17.   echo 'Podano błędny email';
  18.  
  19. }
  20. elseif(empty($_POST['message']))
  21. {
  22.  
  23.   echo 'Nie podałeś treści!';
  24.  
  25. }
  26. elseif(!$_POST['zgoda1']=='1')
  27. {
  28.  
  29. echo "Nie wyrażono zgody nr1";
  30.  
  31. }
  32. elseif(!$_POST['zgoda2']=='1')
  33. {
  34.  
  35. echo "Nie zaznaczono zgody nr2";
  36.  
  37. }
  38. else
  39. {
  40.  
  41.  
  42.  
  43. class MicroMailer{
  44. var $to         = "";
  45. var $subject    = "";
  46. var $message    = "";
  47. var $fromName   = "";
  48. var $fromEmail  = "";
  49. var $header     = "";
  50. var $type       = "text/plain";
  51. var $characterSet = "utf-8";
  52.  
  53.  
  54. function send(){
  55.     $this->createHeader();
  56.     if (@mail($this->to,$this->subject,$this->message,$this->header)){
  57.         return true;
  58.     } else {
  59.         return false;
  60.     }
  61. }
  62.  
  63. function createHeader(){
  64.     $from   = "From: $this->fromName <$this->fromEmail>r\n";
  65.     $replay = "Reply-To: $this->fromEmailr\n";  
  66.     $params = "MIME-Version: 1.0r\n";
  67.     $params = "Content-type: $this->type; charset=$this->characterSetr\n";
  68.  
  69.     $this->header = $from.$replay.$params;
  70.     return $this->header;
  71. }
  72.  
  73. function createMessage(){
  74.     $from   = "From: $this->fromName <$this->fromEmail>r\n";
  75.     $replay = "Reply-To: $this->fromEmailr\n";  
  76.     $params = "MIME-Version: 1.0r\n";
  77.     $params = "Content-type: $this->type; charset=$this->characterSetr\n";
  78.  
  79.     $this->header = $from.$replay.$params;
  80.     return $this->header;
  81. }
  82.  
  83. }
  84.  
  85.  
  86.   $mailer = new MicroMailer();
  87.  
  88.   $mailer->to         = isset($_POST["to"]) ? $_POST["to"] : "";
  89.   $mailer->fromName   = isset($_POST["fromname"]) ? $_POST["fromname"] : "";
  90.   $mailer->fromEmail  = isset($_POST["fromemail"]) ? $_POST["fromemail"] : "";
  91.   $mailer->subject    = isset($_POST["subject"]) ? $_POST["subject"] : "";
  92.   $mailer->message    = isset($_POST["message"]) ? $_POST["message"] : "";
  93. if ($mailer->send()) {
  94.     echo "Wiadomość wysłana pomyślnie!";
  95.   } else {
  96.     echo "Błąd podczas wysyłania wiadomości!";
  97.   }
  98.  
  99. }
  100. }
  101. ?>


wszystko działa pięknie ale potrzebuję jeszcze dodatkowe 2 pola. Problem w tym, że gdy dodam cokolwiek, jakieś nowe wartości , formularz przestaje działać.

Czy można jakoś go przerobić, aby tak jak w funkcja header, utworzyć rozwiniętą funkcję message? W ogóle, to czy można dodać do tego formularza jakieś nowe pola??

Pozdrawiam!
erix
Cytat
wszystko działa pięknie ale potrzebuję jeszcze dodatkowe 2 pola. Problem w tym, że gdy dodam cokolwiek, jakieś nowe wartości , formularz przestaje działać.

Pokaż jak próbowałeś.
cachaito
Cytat(erix @ 18.06.2009, 22:21:10 ) *
Pokaż jak próbowałeś.


Zaznaczam, że na php się nie znam...

próbowałem najprostszym sposobem:

  1. <?php
  2. if(isset($_POST['submit'])){
  3. if(empty($_POST['fromname'])){
  4.  
  5.   echo 'Nie wypełniłeś pola danych osobistych';
  6.  
  7. }
  8. elseif(empty($_POST['fromemail']))
  9. {
  10.  
  11.   echo 'Nie podałeś(aś) swojego email'a';
  12.  
  13. }
  14. elseif(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST['fromemail']))
  15. {
  16.  
  17.   echo 'Podano błędny email';
  18.  
  19. }
  20. elseif(empty($_POST['message']))
  21. {
  22.  
  23.   echo 'Nie podałeś treści!';
  24.  
  25. }
  26. elseif(!$_POST['zgoda1']=='1')
  27. {
  28.  
  29. echo "Nie wyrażono zgody nr1";
  30.  
  31. }
  32. elseif(!$_POST['zgoda2']=='1')
  33. {
  34.  
  35. echo "Nie zaznaczono zgody nr2";
  36.  
  37. }
  38. else
  39. {
  40.  
  41.  
  42.  
  43. class MicroMailer{
  44. var $to         = "";
  45. var $subject    = "";
  46. var $message    = "";
  47. var $fromName   = "";
  48. var $fromEmail  = "";
  49. var $phone         = "";
  50. var $mode         = "";
  51. var $header     = "";
  52. var $type       = "text/plain";
  53. var $characterSet = "utf-8";
  54.  
  55.  
  56. function send(){
  57.     $this->createHeader();
  58.     if (@mail($this->to,$this->subject,$this->message,$this->phone,$this->mode,$this->header)){
  59.         return true;
  60.     } else {
  61.         return false;
  62.     }
  63. }
  64.  
  65. function createHeader(){
  66.     $from   = "From: $this->fromName <$this->fromEmail>r\n";
  67.     $replay = "Reply-To: $this->fromEmailr\n";  
  68.     $params = "MIME-Version: 1.0r\n";
  69.     $params = "Content-type: $this->type; charset=$this->characterSetr\n";
  70.  
  71.     $this->header = $from.$replay.$params;
  72.     return $this->header;
  73. }
  74.  
  75.  
  76. }
  77.  
  78.  
  79.   $mailer = new MicroMailer();
  80.  
  81.   $mailer->to         = isset($_POST["to"]) ? $_POST["to"] : "";
  82.   $mailer->fromName   = isset($_POST["fromname"]) ? $_POST["fromname"] : "";
  83.   $mailer->fromEmail  = isset($_POST["fromemail"]) ? $_POST["fromemail"] : "";
  84.   $mailer->subject    = isset($_POST["subject"]) ? $_POST["subject"] : "";
  85.   $mailer->message    = isset($_POST["message"]) ? $_POST["message"] : "";
  86.   $mailer->phone      = isset($_POST["phone"]) ? $_POST["phone"] : "";
  87.   $mailer->mode   = isset($_POST["mode"]) ? $_POST["mode"] : "";
  88. if ($mailer->send()) {
  89.     echo "Wiadomość wysłana pomyślnie!";
  90.   } else {
  91.     echo "Błąd podczas wysyłania wiadomości!";
  92.   }
  93.  
  94. }
  95. }
  96. ?>


jednak to nic nie pomaga...
PawelC
Ehh, przeanalizuj
  1. <?php
  2. @mail($this->to,$this->subject,$this->message,$this->phone,$this->mode,$this->header
  3. ?>

Tak wygląda funkcja mail, prawidłowo:
  1. <?php
  2. mail('adres e-mail', 'temat', 'tresc','nagłówki');
  3. ?>

A u Ciebie jest takie coś:
Kod
mail('odbiorca','temat',tresc','telefon','tryb','nagłówki');

Powinno być
  1. <?php
  2. @mail($this->to,$this->subject,$this->message.$this->phone.$this->mode,$this->header);
  3. ?>

Musisz $this->message, $this->phone, $this->mode

Połączyć w jedną zmienną, np kropką, czyli:
  1. <?php
  2. $this->message.$this->phone.$this->mode
  3. ?>
cachaito
Pięknie dziękuję ExPlOiT. Śmiga! Tylko, żeby jeszcze dane w treści nie był złączone w jedną "kupę" za przeproszeniem, byłoby pięknie... :-)
PawelC
  1. <?php
  2. @mail($this->to,$this->subject,$this->message."r\n".$this->phone."r\n".$this->mode,$this->header);
  3. ?>

Zobacz tak
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.