Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wysyłanie maila do danych osób
kuba_pilach
post
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Witajcie!
A więc dam kawałek kody, by nie było:
  1. $zapytanieogrupe = mysql_query("select team from uzytkownik where login='$session'")
  2. $zog = mysql_fetch_assoc($zapytanieogrupe);
  3. if ($zog>0) {
  4. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'")
  5. $zs = mysql_num_rows($zapytanieoszefow);
  6. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  7. $tab = $zos['email'];
  8. }
  9. $tablica = implode("; ",$tab);
  10. $subject = "czyli tytuł maila";
  11. $headers = "Return-Path: twoj@email.com\r\n";
  12. $headers .= "MIME-Version: 1.0 \r\n";
  13. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  14. $headers .= "From: twoj@email.com\r\n";
  15. $headers .= "Reply-To: twoj@email.com\r\n";
  16. $headers .= "X-Priority: 1\r\n";
  17. $headers .= "X-MSMail-Priority: High\r\n";
  18. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  19. $msg .= "Dalszy tekst<br><br>";
  20. mail($tablica, $subject, $msg, $headers);
  21. }

Na początku są przykładowe dane... A więc jak pewnie już wiecie robię sobie internetowy dzienniczek dla nauki...
I mam grupy ręcznie robione...
I za każdym razem jak się poprawi ocenę, strona ma wysyłać maila do Adminów grupy do której należy użytkownik...
I zapętla mi się strona :/
Niech ktoś poprawi by działało...
Dzięki z góry ;]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. <?php
  2.  
  3. $zapytanieogrupe = mysql_query("select team from uzytkownik where login='$session'") or die(mysql_error());
  4. $zog = mysql_fetch_assoc($zapytanieogrupe);
  5.  
  6. if(mysql_num_rows($zapytanieogrupe)) {
  7.  
  8. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'") or die(mysql_error());
  9.  
  10. if(mysql_num_rows($zapytanieoszefow) > 1) {
  11.  
  12. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  13.  
  14. $tablica = implode("; ",$zos['email']);
  15. $subject = "czyli tytuł maila";
  16. $headers = "Return-Path: twoj@email.com\r\n";
  17. $headers .= "MIME-Version: 1.0 \r\n";
  18. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  19. $headers .= "From: twoj@email.com\r\n";
  20. $headers .= "Reply-To: twoj@email.com\r\n";
  21. $headers .= "X-Priority: 1\r\n";
  22. $headers .= "X-MSMail-Priority: High\r\n";
  23. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  24. $msg .= "Dalszy tekst<br><br>";
  25. mail($tablica, $subject, $msg, $headers);
  26. }
  27. }
  28. }
Go to the top of the page
+Quote Post
kuba_pilach
post
Post #3





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Dzięki, że się zainteresowałeś... wyskakuje mi następujący błąd:
Kod
Warning: implode() [function.implode]: Invalid arguments passed in /home/vhost/home/pilach-admin/pilachowski.pl/home/kuba/public_html/dzienniczek/pokazywanieprzedmiotu.php on line 145

Warning: implode() [function.implode]: Invalid arguments passed in /home/vhost/home/pilach-admin/pilachowski.pl/home/kuba/public_html/dzienniczek/pokazywanieprzedmiotu.php on line 145

Warning: implode() [function.implode]: Invalid arguments passed in /home/vhost/home/pilach-admin/pilachowski.pl/home/kuba/public_html/dzienniczek/pokazywanieprzedmiotu.php on line 145

Wie ktoś o co chodzi...?
Go to the top of the page
+Quote Post
desperat666
post
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 12
Dołączył: 19.03.2011

Ostrzeżenie: (10%)
X----


może klamra z while nieco wczesniej zamknięta powinna być na przykład przed funkcją mail()?

  1. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  2. $tablica = implode("; ",$zos['email']);
  3. }
  4.  
  5. $subject = "czyli tytuł maila";
  6. $headers = "Return-Path: twoj@email.com\r\n";
  7. $headers .= "MIME-Version: 1.0 \r\n";
  8. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  9. $headers .= "From: twoj@email.com\r\n";
  10. $headers .= "Reply-To: twoj@email.com\r\n";
  11. $headers .= "X-Priority: 1\r\n";
  12. $headers .= "X-MSMail-Priority: High\r\n";
  13. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  14. $msg .= "Dalszy tekst<br><br>";
  15. mail($tablica, $subject, $msg, $headers);
  16.  


Poza tym przeczytałem w manualu, że implode() używa się do łączenia stringów z tablicy, w jeden string, oddzielony jakimś wybranym stringiem
a ty chcesz wartość w tablicy która jest stringiem ($zos['email']) wstawić do funkcji która chce tablice stringów, może zadziała to tak:

  1. $tmp = Array();
  2. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  3. array_push($tmp, $zos['email']);
  4. }
  5. $tablica = implode("; ",$tmp);
  6.  


i nie wiem czy można oddzielać adresatów średnikami, bo to trzeba przeczytać RFC2822 http://www.faqs.org/rfcs/rfc2822.html
spróbój na przykład przecinkiem bo tak napisali w manualu jako pierwszy przykład
Go to the top of the page
+Quote Post
CuteOne
post
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Fakt zamiast implode powinien być explode. Po drugie ile adresów trzymasz w $zos['email']? Po trzecie ile rekordów wyświetli
  1. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'") or die(mysql_error());

? Innymi słowy ilu Adminów, może należeć do danej grupy?

  1. <?php
  2.  
  3. $zapytanieogrupe = mysql_query("select team from uzytkownik where login='$session'") or die(mysql_error());
  4. $zog = mysql_fetch_assoc($zapytanieogrupe);
  5.  
  6. if(mysql_num_rows($zapytanieogrupe)) {
  7.  
  8. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'") or die(mysql_error());
  9.  
  10. if(mysql_num_rows($zapytanieoszefow) >= 1) {
  11.  
  12. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  13.  
  14. $tablica = explode(";",$zos['email']);
  15. $subject = "czyli tytuł maila";
  16. $headers = "Return-Path: twoj@email.com\r\n";
  17. $headers .= "MIME-Version: 1.0 \r\n";
  18. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  19. $headers .= "From: twoj@email.com\r\n";
  20. $headers .= "Reply-To: twoj@email.com\r\n";
  21. $headers .= "X-Priority: 1\r\n";
  22. $headers .= "X-MSMail-Priority: High\r\n";
  23. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  24. $msg .= "Dalszy tekst<br><br>";
  25.  
  26. foreach($tablica as $value) {
  27.  
  28. mail(trim($value), $subject, $msg, $headers);
  29. }
  30. }
  31. }
  32. }


Ten post edytował CuteOne 27.03.2011, 17:04:15
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 20:35