Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]mail(), forma HTML
maxis88
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


Wiem, że była masa takich tematow ale przeglądałem wszystkie, starałem się dostosować do wskazówek ale nadal w outlooku wyświetla mi się wszystko wraz ze znacznikami HTML i nie wiem z jakiego to powodu ... mój kod jest taki:
  1. $headers = "MIME-Version: 1.0\n";
  2.  
  3. $headers .= "Content-type: text/html; charset=ISO-8859-2\n";
  4.  
  5.  
  6.  
  7. $wiadomosc="<html>
  8. <head></head>
  9. <body>
  10.  
  11. ".raport_dzienny()."
  12.  
  13. </body>
  14.  
  15. </html>";
  16.  
  17. if(mail($_POST['email'], "Raport dzienny", $wiadomosc, $headers)){
  18. echo"<br />Wyslano raport!<br />";
  19. }


więc w czym tkwi błąd ?
Go to the top of the page
+Quote Post
cros
post
Post #2





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


  1. <?
  2. $wiadomosc = htmlspecialchars_decode($wiadomosc);
  3. ?>
(IMG:style_emoticons/default/questionmark.gif) ?

Ten post edytował cros 1.05.2010, 21:25:17
Go to the top of the page
+Quote Post
maxis88
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


nadal to samo ...
Go to the top of the page
+Quote Post
cros
post
Post #4





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


Cytat(maxis88 @ 1.05.2010, 22:27:08 ) *
nadal to samo ...

Pokaz kod tej funkcji raportdzienny();
Mam nadzieje ze ta linijke, ktora ci podalem, dodales dopiero po przypisaniu tresci maila do zmiennej.
Go to the top of the page
+Quote Post
maxis88
post
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


  1. function raport_dzienny(){
  2.  
  3. if($_POST['dzien']<10){$dzien="0".$_POST['dzien'];}else{$dzien=$_POST['dzien'];}
  4. if($_POST['miesiac']<10){$miesiac="0".$_POST['miesiac'];}else{$miesiac=$_POST['miesiac'];}
  5. $data="$dzien/$miesiac/".$_POST['rok'];
  6. $dat=explode(" ", $data);
  7.  
  8. db_connect();
  9. $zaznacz=mysql_query("SELECT zakupy.klient, zakupy.ilosc, zakupy.zakup,
  10. produkty.nazwa, produkty.cena FROM zakupy LEFT JOIN produkty ON
  11. zakupy.towar=produkty.id WHERE zakupy.status='Przekazano' ORDER BY zakupy.klient");
  12.  
  13.  
  14. $wiadomosc="";
  15. $suma=0;
  16. while($pokaz=mysql_fetch_row($zaznacz)){
  17. $zaznacz_uzytkownika=mysql_query("SELECT imie, nazwisko FROM users WHERE nick='$pokaz[0]'");
  18. $pokaz_uzytkownika=mysql_fetch_row($zaznacz_uzytkownika);
  19. if($pokaz[0]!=$_POST['ostatni']){
  20. if($suma!=0){$wiadomosc.="<tr><td colspan=2 style='color:green; text-align:center'>
  21. W sumie do zapłaty $suma</td></tr></table>";}
  22. $wiadomosc.="<table border=0 style='font-size:14; margin-bottom:10;
  23. margin-top:10;
  24. border-width:1px; border-style:solid' width='50%' align=center>
  25. <caption style='background-color:white'><i>$pokaz_uzytkownika[0]
  26. $pokaz_uzytkownika[1]</i> <b>[$pokaz[0]]</b> zamówił:</caption><tr>";
  27. $suma=0;}
  28. else{$wiadomosc.="<tr>";}
  29.  
  30. $wiadomosc.="<td><i>$pokaz[1] sztuk</i> \"<u>$pokaz[3]</u>\"</td>
  31. <td><i>W dniu $pokaz[2]</i></td>
  32.  
  33. </tr>";
  34. $_POST['ostatni']=$pokaz[0];
  35. $suma+=$pokaz[1]*$pokaz[4];
  36. }
  37.  
  38. if($suma!=0){$wiadomosc.="<tr><td colspan=2 style='color:green; text-align:center'>
  39. W sumie do zapłaty $suma</td></tr></table>";}
  40.  
  41. return "$wiadomosc";
  42. }



  1. $headers = "MIME-Version: 1.0\n";
  2.  
  3. $headers .= "Content-type: text/html; charset=ISO-8859-2\n";
  4.  
  5.  
  6.  
  7. $wiadomosc="<html>
  8. <head></head>
  9. <body>
  10.  
  11. ".raport_dzienny()."
  12.  
  13. </body>
  14.  
  15. </html>";
  16.  
  17. $wiadomosc = htmlspecialchars_decode($wiadomosc);
  18. if(mail($_POST['email'], "Raport dzienny", $wiadomosc, $headers)){
  19. echo"<br />Wyslano raport!<br />";
  20. }



wiem że funkcja trochę chaotycznie zrobiona ale nad jej wydajnością popracuję później... poki co chciałbym tylko żeby wyświetlało się w mailu wszystko jak trzeba ...
Go to the top of the page
+Quote Post
cros
post
Post #6





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


dodaj jeszcze to przed htmlspecialchars
Kod
$zmienna = stripslashes($zmienna);

i sproboj zwracac zmienna bez "", tzn return $zmienna, zamiast return "$zmienna";
Go to the top of the page
+Quote Post
maxis88
post
Post #7





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


  1. $headers = "MIME-Version: 1.0\n";
  2.  
  3. $headers .= "Content-type: text/html; charset=ISO-8859-2\n";
  4.  
  5.  
  6.  
  7. $wiadomosc="<html>
  8. <head></head>
  9. <body>
  10.  
  11. ".raport_dzienny()."
  12.  
  13. </body>
  14.  
  15. </html>";
  16. $wiadomosc = stripslashes($wiadomosc);
  17. $wiadomosc = htmlspecialchars_decode($wiadomosc);
  18. if(mail($_POST['email'], "Raport dzienny", $wiadomosc, $headers)){
  19. echo"<br />Wyslano raport!<br />";
  20. }


nie wiem czy dobrze zrozumiałem, ale jesli miało byc tak jak powyżej to nadal nie dziala ...

EDIT: "return" w funkcji tez poprawione

Ten post edytował maxis88 1.05.2010, 21:53:04
Go to the top of the page
+Quote Post
cros
post
Post #8





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


a wez wpisz w tresc maila np "<b>pogrubiony</b> tekst" i wyslij, jesli nadal bedzie widac tagi, to moze masz w outlooku wylaczony html?
Sprawdz to, a jesli bedzie ok, tzn ze cos jednak w kodzi, ja dzisiaj juz ci nie pomoge, bo mam pustke w glowie :/
Go to the top of the page
+Quote Post
maxis88
post
Post #9





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


  1. <b>pogrubiony</b>
też nie działa jak powinno ... w ustawieniach outlooka sprawdzałem i raczej nic nie powinno blokować wyświetlania wiadomości w HTML'u ... poza tym jak mi przychodzi SPAM to często właśnie w HTML'u ... i jedynie obrazki się blokują ale ja nic takiego nie mam ...

EDIT: jak wejdę na pocztę poprzez stronę www to wszystko wyświetla się ok ...

Ten post edytował maxis88 1.05.2010, 22:05:52
Go to the top of the page
+Quote Post
cros
post
Post #10





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


Cytat(maxis88 @ 1.05.2010, 23:04:10 ) *
  1. <b>pogrubiony</b>
też nie działa jak powinno ... w ustawieniach outlooka sprawdzałem i raczej nic nie powinno blokować wyświetlania wiadomości w HTML'u ... poza tym jak mi przychodzi SPAM to często właśnie w HTML'u ... i jedynie obrazki się blokują ale ja nic takiego nie mam ...

EDIT: jak wejdę na pocztę poprzez stronę www to wszystko wyświetla się ok ...

No to raczej wina outlooka.
Proponuje jednak zostawic w kodzie te funkcje htmlspecialchars i stripslashes, bo to nie przeszkodzi, a moze pomoc.
Pogrzeb w ustawieniach, choc dziwne, ze inne maile sa html.
Sprawdz w tych mailach (spamowych), jakiego naglowka uzywaja i sam uzywaj takiego, chociaz ten twoj jest dobry.

Ten post edytował cros 1.05.2010, 22:15:52
Go to the top of the page
+Quote Post
maxis88
post
Post #11





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


sprawdzalem też w thunderbirdzie i też wyświetla mi tagi ;/ już nie wiem co jest z tym nie tak ... a najgorsze są własnie takie błahe rzeczy ...
Go to the top of the page
+Quote Post
Daniel Meger
post
Post #12





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.04.2010
Skąd: PL

Ostrzeżenie: (0%)
-----


Otwórz mejle wraz ze wszystkimi nagłówkami:
a) jakiś co poprawnie się wyświetla
b) ten z Twojego skryptu

i je porównaj.

Prawdopodobnie Outlook wymaga czegoś jeszcze w nagłówku.

Ten post edytował Daniel Meger 1.05.2010, 22:34:03
Go to the top of the page
+Quote Post
maxis88
post
Post #13





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


a tak wgl to on powinien w wiadomosci wyswietlac naglowki ? bo wydaje mi sie ze nie ... moze jednak w naglowkach cos jest nie tak ...
Go to the top of the page
+Quote Post
cros
post
Post #14





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


Cytat(maxis88 @ 2.05.2010, 09:56:23 ) *
a tak wgl to on powinien w wiadomosci wyswietlac naglowki ? bo wydaje mi sie ze nie ... moze jednak w naglowkach cos jest nie tak ...

Nie powinien, naglowki wyswietla dopiero po wejsciu we wlasciwosci danego maila.
Sprawdzalem te naglowki i sa dobre, chyba ze slepy jestem (IMG:style_emoticons/default/winksmiley.jpg)
Dziwna sprawa i mnie chyba przerosla, wiec niech sie wypowie ktos madrzejszy ode mnie (IMG:style_emoticons/default/smile.gif)

EDIT:
Pozniej skopiuje ten Twoj skrypt i przetestuje u siebie, oczywiscie polacze sie z wlasna baza sql i zobaczymy jakie maile bedzie mi wysylal.
Odezwe sie jak to zrobie.

EDIT 2:
No i sprawdzilem, wynik:
Wszystko pieknie wyswietlone w HTMLu, zarowno na poczcie przez www, jak i w outlooku 2007.

Ten post edytował cros 2.05.2010, 11:08:42
Go to the top of the page
+Quote Post
maxis88
post
Post #15





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


no nic ... dzięki cros za chęci pomocy ... skoro działa to najważniejsze ...
Go to the top of the page
+Quote Post
Daniel Meger
post
Post #16





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.04.2010
Skąd: PL

Ostrzeżenie: (0%)
-----


spróbuj
  1. $headers = "MIME-Version: 1.0\r\n";
  2. $headers .= "Content-type: text/html; charset=iso-8859-2\r\n";



czemu? nie wiem (IMG:style_emoticons/default/winksmiley.jpg) ale tak jest w manualu (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował Daniel Meger 2.05.2010, 20:06:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:05