Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczna zawartość treści w funkcji mail() ?
Forum PHP.pl > Forum > Przedszkole
Qrzysio
Witam.

Chcę wysłać maila z subskrypcji do listy odbiorców, ale jego treść się zmienia. Nie chcę go pisać samemu, lecz ma się on wysyłać sam o stałej porze i zawierać każdorazowo różną treść o dodanych nowych pozycjach. W treści wiadomości chcę wpisac poniższy tekst wraz z wynikiem zawartego skryptu:

  1. <?
  2.  
  3. echo&#092;"Jakiś tekst wstępu itp...... kilka zdań....\";
  4.  
  5. $time = time() - 86400;
  6. $result = mysql_query(&#092;"SELECT tytul_pl FROM wypozyczalnia_baza_filmow WHERE czas > '$time' ORDER BY czas DESC\");
  7.  
  8. while ($dane = mysql_fetch_array($result)) {
  9.  
  10. echo&#092;"$dane[0]n\";
  11.  
  12. }
  13.  
  14. echo&#092;"Dalsza treść wiadomości....... Inne informacje\";
  15.  
  16. ?>


Nie wiem jak można wynik tego skryptu podpiąc do jednej zmiennej, aby nie wykorzystywać formularza.

Chyba, że ktoś zna sposób aby napisać skrypt, który sam kliknie mi w SUBMIT w formularzu - istnieje taka możliwość?
nexis
Zdecydowanie musisz to skorzystać z CRON'a (http://linux.gery.pl/dzialy/podstawy/konfiguracja/cron). Później musisz w bazie danych umieścić odpowiednie treści, które jak mówiłeś mają się zmieniąć zależnie od godziny, czyli:

Kod
++++++++++++++++++++++++++++++++++++++
+ hour + content                     +
++++++++++++++++++++++++++++++++++++++
+  12  + To jest treść dla południa. +
+  13  + To jest inna treść.         +
+  14  + A to jeszcze inna.          +
++++++++++++++++++++++++++++++++++++++


I odpowiednie wyniki uzyskiwać o odpowiedniej godzinie i w pętli je rozsyłać do użytkowników.
Qrzysio
To wszystko doskonale rozumiem, ale nie wiem jak zrobić aby zmienna $tresc_maila która jest treścią wiadomości e-mail wysyłanej do użytkowników była wynikiem działania powyżeszgo skryptu bo przecież nie mogę zrobić takiego przypisania:


$tresc_maila = while ($dane = mysql_fetch_array($result)) {

echo"$dane[0]\n";



Czy czegoś jeszcze nie wiem?

Powtórzę jeszcze raz: Jak umieścić w treści maila efekt mojego skryptu?
Vaticinator
Zapisz wynik swojego zapytania do zmiennej np. $tresc, a potem juz tylko:
  1. <?php
  2. mail(adres_odbiorcy,Tytul,$tresc,&#092;"From: Imie <adres_nadawcy>\");
  3. ?>

Chyba, że czegoś nie zrozumiałem blink.gif
Qrzysio
Ha!

Może ja mam dziś zacmienie jaźni, albo po prostu estem inny niż wszyscy bo zrobię w php dużo ale akurat nie to co mi potrzeba...

Spójrz na mój skrypt:

  1. <?
  2.  
  3. echo&#092;"Jakiś tekst wstępu itp...... kilka zdań....\";
  4.  
  5. $time = time() - 86400;
  6. $result = mysql_query(&#092;"SELECT tytul_pl FROM wypozyczalnia_baza_filmow WHERE czas > '$time' ORDER BY czas DESC\");
  7.  
  8. while ($dane = mysql_fetch_array($result)) {
  9.  
  10. echo&#092;"$dane[0]n\";
  11.  
  12. }
  13.  
  14. echo&#092;"Dalsza treść wiadomości....... Inne informacje\";
  15.  
  16. ?>


Wynik działania tego skryptu ma byc przypisany zmiennej np. $tresc_maila Teraz weź mi wytłumacz jak mam do jednej zmiennej przpypisać wynik działania pętli while? No ja po prostu nie mogę tego wymyślić. Z pętli while otrzymamy np. 5 stringów i jak to przypisać do jednej zmiennej? Pomijając, że muszę tej zmiennej przypisac także string przed tą pętlą i po tej pętli....


Albo w drugą stronę... może będzie łątwiej dla tych co wiedzą więcej niż ja. Muszę wykonać skrypt za pomocą CRON'a. Czy mogę napisać taki skrypt, który będzie potrafił wykonać (czyli tak jak normlanie wciskamy przycisk typu submit) formularz i przesłać dane? Bo rzecz u mnie jest taka że w textarea mogę sobie użyć pętelki while i wtedy wysle mi to formuarz jako jedna zmienna, tylko znowu nie wiem jak "zdalnie" wykonać formularz....
ebe
  1. <?php
  2. $tresc = &#092;"Jakiś tekst wstępu itp...... kilka zdań....\";
  3.  
  4. $time = time() - 86400;
  5. $result = mysql_query(&#092;"SELECT tytul_pl FROM wypozyczalnia_baza_filmow WHERE czas > '$time' ORDER BY czas DESC\");
  6.  
  7. while ($dane = mysql_fetch_array($result)) {
  8.  
  9. $tresc .= &#092;"$dane[0]n\";
  10.  
  11. }
  12.  
  13. $tresc .= &#092;"Dalsza treść wiadomości....... Inne informacje\";
  14.  
  15. mail($adres_odbiorcy,$tytul,$tresc,&#092;"From: Imie <adres_nadawcy>\");
  16.  
  17.  
  18. ?>


Operator .= dołącza zmienną do danej zmiennej
matid
Chodzi o takie coś?
  1. <?
  2.  
  3. $sString = &#092;"Jakiś tekst wstępu itp...... kilka zdań....\";
  4.  
  5. $time = time() - 86400;
  6. $result = mysql_query(&#092;"SELECT tytul_pl FROM wypozyczalnia_baza_filmow WHERE czas > '$time' ORDER BY czas DESC\");
  7.  
  8. while ($dane = mysql_fetch_array($result)) {
  9.  
  10. $sString .= $dane[0] . &#092;"n\";
  11.  
  12. }
  13.  
  14. $sString .= &#092;"Dalsza treść wiadomości....... Inne informacje\";
  15.  
  16. echo $sString;
  17. ?>


Edit: No tak, @ebe mnie ubiegł...
Qrzysio
Ha!

Małe a cieszy... zaraz sprawdzę jak to będzie działac, ale rzeczywiście składnia mi się podoba.. że też taka prościzna a ja nie pomyślałem.

Dzieki chłopaki!!
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.