Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]
Forum PHP.pl > Forum > PHP
lordvanyuri
Mam problem ze skryptem z imiennym mailingiem do newslettera.

Tabela1:
id.email.imie.dzien

Tabela2:
id.dzien.temat.tresc

Pierwsza tabela zawiera dane użytkownika - kolumna dzień określa, który to jest dzień i w zależności od tego dostanie raz dziennie email z tabeli 2 odpowiedni do dnia.

Problem polega na imiennym zwracaniu się do użytkownika.
W polu tresc zapisuję całą treśc emaila wraz ze znacznikami html - podczas gdy w tym polu chcę uwzględnić zmienną imię wpisuję już na różne sposoby:
'.$imie.' - $imie - <?=$imie ?> - ''.$imie.'' - i nic nie działa mailing dochodzi dosłownie tak jak jest zapisany w bazie.

oto kod jakim się posługuję:

  1. $wynik=mysql_query("SELECT * FROM user ");
  2. while ($rekord = mysql_fetch_assoc ($wynik)) {
  3. $id=$rekord['id'];
  4. $imie=$rekord['imie'];
  5. $email=$rekord['email'];
  6. $day=$rekord['day'];
  7.  
  8.  
  9. $wynik2 = mysql_query ("SELECT * FROM email WHERE emailday='$day' ");
  10. while ($rekord = mysql_fetch_assoc ($wynik2)) {
  11. $temat=$rekord['temat'];
  12. $tresc=$rekord['tresc'];
  13.  
  14. $heather = "MIME-Version: 1.0\r\n";
  15. $heather .= "Content-type: text/html; charset=windows-1250\r\n";
  16. $heather .= "From: domena.pl <info@domena.pl>\r\n";
  17.  
  18. mail($email,$temat,$tresc,$heather);
  19.  
  20. }
  21. }


Zmienna tresc pobiera wcześniej zapisany szablon maila z bazy - ale nie interpretuje już zmiennej $imie - jak to przeskoczyć?
Wsystko jest ok, jesli podstawię pod zmienną tresc bezpośrednio tak:
  1. $tresc=' Witaj '.$imie.' bla bla ';

Ale wtedy w treść strony musiałbym wkleić wszystkie maile i zróżnicować je funkcją if - a to nie ma sensu - bo kurs jest długi

Byłbym bardzo wdzięczny za pomoc

PODSUMOWUJĄC - moje pytanie brzmi: Jak ma zapisać w bazie zmienną $imie aby przy pobieraniu powyższy skrypt wstawiał wcześniej pobrane imię?
morbic
W bazie zapisz szablon jako:
Cytat
Witaj %imie%, bla bla..


Następnie w kodzie, przy pobieraniu treści z bazy:
  1. $tresc = str_replace('%imie%', $imie, $rekord['tresc']);


To podstawy PHP: http://webmade.org/kursy-online/str_replace-kurs-php.php
Villentre
Może tak:
Kod
$tresc = eval($rekord['tresc']);
morbic
O tym samym pomyślałem na początku. Ale o wiele bezpieczniej użyć str_replace() niż eval'ować to, co jest w bazie. Brrr, aż strach pomyśleć co w przypadku SQL Injection na to pole... Kompletnie niepotrzebne rozwiązanie jeśli potrzebuje on tylko podmienić tekst, a nie wykonywać jakikolwiek kod PHP stamtąd.
lordvanyuri
WIELKIE DZIĘKI exclamation.gif! Wyświetliło już coś smile.gif można iść spać smile.gif faktycznie to podstawy, ale nie wpadłem na to - ciąglę się uczę- słyszałem o tej funkcji ale jeszcze z niej tak nie korzystałem - jeszcze raz dzięki - będzie śmigało smile.gif
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.