Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja mail()
Forum PHP.pl > Forum > Przedszkole
nergla
  1. <? mail($email, $temat, ... ); ?>

Chcę aby w miejscu ... (treść wiadomości) umieścić kilka zmiennych ze strony, napisów w apostrofach oraz kilka funkcji if(), jak to zrobić?
tomsi
  1. <? mail($email, $temat, "
  2. $zmienna1
  3. $zmienna2
  4.  
  5. I zwykły tekst wpisany w mail.
  6. Jak chcesz żeby był jakiś wyraz w apostrofach to zrób tak \"Cytat\"
  7.  
  8.  
  9. "); ?>
thekoks
A może tak
  1. <?
  2. $tresc = $zmienna1;
  3. $tresc = $zmienna2;
  4. $tresc = 'jakas tresc';
  5. $tresc = 'jakis "cytat" tresc';
  6.  
  7. mail($email, $temat, $tresc);
  8. ?>

Działa na 100% sam tak robię smile.gif
fishki
Witam

Tez przerabiam ten temat z mail(em) ale u mnie Wasze metody nie skutkuja. W miejscach zmiennych sa puste pola



  1. <?php
  2. mail ('xxxx@o2.pl', 'Nowe zamowienie', "
  3. ZAMOWIENIE
  4.  
  5. $f0
  6. $f1
  7. $f2
  8.  
  9. $a0 sztuk pierwszego produktu");
  10. ?>
thekoks
A teraz
  1. <?
  2. $email = 'ktos@wp.pl';
  3. $temat = 'Jakis temat';
  4. $zmienna1 = 'Zmienna nr 1';
  5. $amienna2 = 'Zmienna nr 2';
  6. $tresc = $zmienna1;
  7. $tresc = $zmienna2;
  8. $tresc = 'jakas tresc';
  9. $tresc = 'jakis "cytat" tresc';
  10.  
  11. mail($email, $temat, $tresc);
  12. ?>


questionmark.gif
nergla
Niewiem jak to będzie działać bo nie mam narazie dostępu do serwera, ale może wykorzystując ciąg uda się osiągnąć taki efekt:
  1. <?
  2. $email='bok@globallogistic.eu';
  3. $temat='Zamówienie';
  4. $zmienna1='coś tam';
  5. $zmienna2='jeszcze coś innego'
  6. $zmienna3=78;
  7. $tresc=$zmienna1.$zmienna3.$zmienna2;
  8.  
  9. echo mail($email,$temat,$tresc);
  10. ?>
rzymek01
Cytat(thekoks @ 9.05.2009, 15:39:52 ) *
A teraz
  1. <?
  2. $email = 'ktos@wp.pl';
  3. $temat = 'Jakis temat';
  4. $zmienna1 = 'Zmienna nr 1';
  5. $amienna2 = 'Zmienna nr 2';
  6. $tresc = $zmienna1;
  7. $tresc = $zmienna2;
  8. $tresc = 'jakas tresc';
  9. $tresc = 'jakis "cytat" tresc';
  10.  
  11. mail($email, $temat, $tresc);
  12. ?>


zapomniałeś dać kropeczki w 2 i w każdym kolejnym przypisywaniu tekstu do zmiennej $tresc smile.gif


//edit:
wyjaśniam:

powinno byc tak:
Kod
$tresc = $zmienna1;
$tresc .= $zmienna2;
$tresc .= 'jakas tresc';
$tresc .= 'jakis "cytat" tresc';

bo w poprzednim kodzie nadpisujesz wczesniejsze wartości zmiennej `tresc`
tomsi
Dziwne, że mój kod u Ciebie nie działa. Ale co się dzieje? Wysyła się jakiś mail czy w ogóle nie dochodzą? Jeśli w ogóle nie dochodzą to może coś z serwerem i ustawieniami?

Dodatkowo krótka informacja:
http://pl.wikibooks.org/wiki/PHP/Wysyłanie_e-maili

http://pl.php.net/manual/en/function.mail.php <-- tutaj masz też jak html wysłać w treści
fishki
U mnie poprostu zmmienne sa jakby puste ;/ Przychodiz tylko:"jakas trescjakis "cytat" tresc" w jednej linii.
tomsi
Ja robiłem dokładnie tak i mail jest taki jak jest zdefinionawana wiadomość:

  1. <?php
  2. $naglowek .= "Content-Type: text/plain; charset=utf-8 r\n";
  3. $naglowek .= "From: cos@cos_tam.pl r\n";
  4.  
  5.    $temat="=?charset=utf-8?B?".base64_encode("Temat_jakiś")."?=";
  6.  
  7.    
  8.    if(!mail($email,$temat, "
  9.    
  10. ^^^^^^^^^^^^^^^^^^^^      
  11. \"Komputerek\" SA
  12. ^^^^^^^^^^^^^^^^^^^^
  13.  
  14.  
  15.    
  16. Zamówiłeś:
  17.  
  18.  
  19. $zmienna_z_towarami_zamowionymi
  20.  
  21.  
  22. Czekaj na kuriera.
  23.  
  24.  
  25.  
  26. Adres zamawiającego:
  27.  
  28.  
  29. $imie $nazwisko \n
  30. $miasto, $ulica \n
  31. $kod \n
  32. $telefon
  33.  
  34.  
  35.  
  36. Komentarz:
  37.  
  38.  
  39. $komentarz_do_zamowienia
  40.  
  41.  
  42.  
  43. Dziękujemy za zakupy!!! ZAPRASZAMY PONOWNIE"
  44.    
  45.    ,$naglowek ."X-Mailer: PHP/".phpversion()))
  46. ?>
fishki
a U mnie przychodzi mail ale taki:

   
^^^^^^^^^^^^^^^^^^^^  
"Komputerek" SA
^^^^^^^^^^^^^^^^^^^^


   
Zamówiłeś:





Czekaj na kuriera.



Adres zamawiającego:


 

 

 





Komentarz:






Dziękujemy za zakupy!!! ZAPRASZAMY PONOWNIE





// Pomijajac złe kodowanie to miejsca ze zmiennymi sa PUSTE. Oczywiscie nazwy zmiennych poprawiłem na swoje, Wiec juz nic nie rozumiem
tomsi
Kodowanie oczywiście musisz dopasować do swojego, a co z serwerem? To jest w ogóle na zewnętrznym czy lokalnie? Może ustawienie serwera są złe? (chociaż wątpię bo mail przychodzi).

A weź zrób przed wysłaniem maila echo tych zmiennych czy w ogóle coś będzie na ekranie. Może jest problem bo się nic nie zapisuje w zmiennych?
fishki
Witam

Serwer to nazwa.pl a caly skryp jest pod adresem www.comb.nazwa.pl/olek Zmienne sa wyswietlane przez POST w pliku góra.php W tym tez pliku jest funkcja mail. Prosze o pomoc smile.gif 

gora.php

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Untitled Document</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10.  
  11.  <?php
  12.  
  13. print "<b>ZAMÓWIENIE</b><br><br>\n\t";
  14. print "Twoje dane:";
  15. print "<br>\n\t";
  16. print "<br>\n\t";
  17.  
  18. //pobieranie Imienia
  19. print "<b>Imię i nazwisko </b>";
  20. print $_POST['f0'];
  21. print "<br>\n\t";
  22.  
  23. //pobieranie Adresu
  24. print "<b>Adres </b>";
  25. print $_POST['f1'];
  26. print "<br>\n\t";
  27.  
  28. // Pobieranie kodu i miejscowosci
  29. print "<b>Kod pocztowy </b>";
  30. print $_POST['f2']; 
  31. print "&nbsp;&nbsp;";
  32. print "<b>Miejscowość </b>";
  33. print $_POST['f3'];
  34. print "<br>\n\t";
  35. print "<b>Adres E-mail </b>";
  36. print $_POST['f4'];
  37.  
  38. print "<br>\n\t";
  39. print "<b>Telefon kontaktowy </b>";
  40. print $_POST['f5'];
  41. print "<br>\n\t";
  42. print "<br>\n\t";
  43. print "<br>\n\t";
  44.  
  45.  
  46. if ($_POST['a0'] > 0){print "Zamówiłeś "; print $_POST['a0']; print " sztuk produktu pierwszego na łączną kwotę "; print $_POST['a0']*37;
  47. print " zł."; print "<br>\n\t";
  48. }
  49. else {
  50. print "&nbsp;";}
  51.  
  52. if ($_POST['a1'] > 0){print "Zamówiłeś "; print $_POST['a1']; print " sztuk produktu drugiego na łączną kwotę "; print $_POST['a0']*41;
  53. print " zł."; print "<br>\n\t";
  54. }
  55. else {
  56. print "&nbsp;";}
  57.  
  58. print "<br>\n\t";
  59. print "<br>\n\t";
  60.  
  61. print "Łaczna kwota zamówienia to "; print $_POST['a0']*37+$_POST['a1']*41;
  62. print "<br>\n\t";
  63. print "<br>\n\t";
  64.  
  65. print "Sposób wysyłki: \n\t";
  66. // pierwsza platnosc
  67. if ($_POST['p'] == "p0") {print "Poczta Polska - Wpłata na konto 12 zł"; print "<br>\n\t"; print "Łączna kwota do zapłaty"; print $_POST['a0']*37+$_POST['a1']*41+12; print " zł."; print "<br>\n\t"; print "<b>Numer konta Inteligo: 123456</b>";}
  68.  
  69.  
  70. // druga platnosc
  71. if ($_POST['p'] == "p1") {print "Poczta Polska - Płatne przy odbiorze 18 zł"; print "<br>\n\t"; print "Łączna kwota do zapłaty"; print $_POST['a0']*37+$_POST['a1']*41+18; print " zł."; print "<br>\n\t";}
  72.  
  73.  
  74.  
  75.  
  76. // trzecia platnosc
  77. if ($_POST['p'] == "k0") {print "Kurier UPS - wpłata na konto 27 zł"; print "<br>\n\t"; print "Łączna kwota do zapłaty"; print $_POST['a0']*37+$_POST['a1']*41+27; print " zł."; print "<br>\n\t"; print "<b>Numer konta Inteligo: 123456</b>";}
  78.  
  79.  
  80.  
  81.  
  82. // czwarta platosc
  83. if ($_POST['p'] == "k1") {print "Kurier UPS - płatne przy odbiorze 32 zł"; print "<br>\n\t"; print "Łączna kwota do zapłaty"; print $_POST['a0']*37+$_POST['a1']*41+32; print " zł."; print "<br>\n\t";}
  84.  
  85. print "<br>\n\t";
  86.  
  87.  
  88. ?>
  89.  
  90. <?php
  91. $naglowek .= "Content-Type: text/plain; charset=utf-8 r\n";
  92. $naglowek .= "From: cos@cos_tam.pl r\n";
  93.  
  94.    $temat="=?charset=utf-8?B?".base64_encode("Temat_jakiś")."?=";
  95.  
  96.    
  97.    if(!mail('clubaze@o2.pl',$temat, "
  98.    
  99. ^^^^^^^^^^^^^^^^^^^^       
  100. \"Komputerek\" SA
  101. ^^^^^^^^^^^^^^^^^^^^
  102.  
  103.  
  104.    
  105. Zamówiłeś:
  106.  
  107.  
  108. $a0
  109.  
  110.  
  111. Czekaj na kuriera.
  112.  
  113.  
  114.  
  115. Adres zamawiającego:
  116.  
  117.  
  118. $f0 \n
  119. $f1 \n
  120. $kod \n
  121. $telefon
  122.  
  123.  
  124.  
  125. Komentarz:
  126.  
  127.  
  128. $komentarz_do_zamowienia
  129.  
  130.  
  131.  
  132. Dziękujemy za zakupy!!! ZAPRASZAMY PONOWNIE"
  133.    
  134.    ,$naglowek ."X-Mailer: PHP/".phpversion()))
  135. ?>
  136.  
  137.  
  138. </body>
  139. </html>
tomsi
Poczytaj sobie o takiej instrukcji warunkowej:

http://pl.php.net/manual/pl/control-structures.switch.php

No a te zmienne w tym skrypcie gora.php te zmienne Ci się wyświetlają w przeglądarce?
fishki
Cytat(tomsi @ 10.05.2009, 14:23:58 ) *
No a te zmienne w tym skrypcie gora.php te zmienne Ci się wyświetlają w przeglądarce?




Tak. na stronie wyświela sie cale podsumowanie zamowienia. Teraz musze je w jakis sposob wyslac na maila
tomsi
Ok a gdzie w tym kodzie amsz zdefiniowaną zmienną np. $f0?

  1. <?php
  2. $f0=$_POST['f0'];
  3. ?>
O$iek
Przydałoby Ci się sprawdzanie danych wprowadzonych przez użytkownika, bo mogę wysłać pusty formularz.
fishki
Zmienna f0, pochodzi z formularza w poprzednim pliku. Tzn z index.php

Zgadza sie można wysłać pusty formularz. Ale narazie nie chce sie rozpedzać w sprawdzanie zawawrtosci pół skoro nie mam zrobionego tego na czym mi najbardziej zalezy czyli potwierdzenia na maila
tomsi
No super, że zmienna jest w index.php ale tutaj masz gora.php i nie masz POST['cos_tam'] przypisanego do $cos_tam tak jak CI napisałem wyżej. Tutaj też daj w tym pliku przypisanie do zmiennej wartości z POST.

A do sprawdzania pól masz tutaj:

http://forum.php.pl/index.php?showtopic=97...mp;#entry492047
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.