Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie wiadomości treść z mysql i $_POST
Forum PHP.pl > Forum > PHP
Giluś
Cześć mam takie pytanie, chciałbym wysłać wiadomość na e-mail (funkcja mail) po zarejestrowaniu się użytkownika i chciałbym abym sobie treść mógł dowolnie zmieniać, nie wchodząc na ftp i tam zmieniać, chciałbym to zrobić przez stronę www - czyli mysql(php), napotkałem taki problem:


  1. $adres = $_POST['email']; // Do kogo
  2. $tytul = "Rejestracja w serwisie: ".$nazwa.""; // Tytuł zmienna $nazwa jest też pobrana wcześniej z MySQL - działa poprawnie.
  3. $wiadomosc = $wiadomoscmysql; // Treść - o nią tu chodzi w tym poście - tak samo zmienna.
  4. mail($adres, $tytul, $wiadomosc); // wysyłanie wiadomości



W MySql dodałem sobie rekord (o id 1) z treścią wiadomości jaka ma być wysyłana do użytkowników, to co napiszę w MySQL to się wyślę do usera, a ja chciałbym zrobić coś takiego, że w mysql wpisuje np.: Witaj, twój email to: ".$_POST['email'].", to powinno się użytkownikowi wysłać na email takie coś: Witaj, twój email to domena@domena.pl, a mi wychodzi coś takiego: Witaj, twój email to: ".$_POST['email'].".

Jak to zrobić ?smile.gif
cycofiasz
Czyli chcesz zapisać sobie w bazie szablon emaila. Można to zrobić na wiele sposobów. Jeden z prostszych to wstawić w szablonie {email} i później podmienić to na właściwy email przy pomocy funkcji str_replace
Giluś
Mówisz o czymś takim:
W mysql wpisuje np.: Witaj, twój email to: {email}, a później w php wyszukuje {email} i jeśli go znajdzie to podstawia na zmienną $_POST['email'] tak ?
grzes999
dokładnie tak bo innej opcji chyba nie ma.
PawelC
  1. $mail=$_POST['email'];
  2. $tresc=str_replace("{email}", $mail, $wiadomoscmysql);

Coś w tym stylu, i teraz jako wiadomość e-mail, dajesz $tresc smile.gif Sprawdź, bo pisane na szybko, pomyśl też o wysyłaniu nagłówków bo inaczej wiadomość będzie trafiała do spamu.
Giluś
Dobrze działa smile.gif zrobiłem takie coś:

  1. $wynik = str_replace("{imie}", $_POST['imie'], $wiadomoscmysql);
  2. $wynik1 = str_replace("{nazwisko}", $_POST['imie'], $wynik);
  3. $wynik2 = str_replace("{login}", $_POST['login'], $wynik1);
  4. $wynik3 = str_replace("{email}", $_POST['email'], $wynik2);
  5. $wynik4 = str_replace("{telefon}", $_POST['telefon'], $wynik3);
  6. $wynik5 = str_replace("{miejscowosc}", $_POST['miejscowosc'], $wynik4);
  7. $wynik6 = str_replace("{ulica}", $_POST['ulica'], $wynik5);
  8. $wynik7 = str_replace("{dom}", $_POST['dom'], $wynik6);
  9. $wynik8 = str_replace("{wojewodztwo}", $_POST['wojewodztwo'], $wynik7);
  10. $wynik9 = str_replace("{kodpocztowy}", $_POST['kodpocztowy'], $wynik8);
  11. $wynik10 = str_replace("{gg}", $_POST['gg'], $wynik9);
  12. $wynik11 = str_replace("{pesel}", $_POST['pesel'], $wynik10);
  13. $wynik12 = str_replace("{nip}", $_POST['nip'], $wynik11);



Troszkę do innego tematu, ale żeby nie robić spamu ...
A da się zrobić zapamiętywanie loginu i hasła gdy jest hasło w mysql zapisane w md5() ?, a jeśli tak, to jak ?smile.gif

PawelC
A filtrowanie danych dodawanych i pobieranych z bazy, to gdzie jest? Do zapamiętania musisz użyć sesji, i podczas logowania jak dane podane są dobre i hasło nie zakodowane md5() tylko w czystej postaci, zapisujesz login i hasło do zmiennych sesji np
  1. $_SESSION['haslo']=$_POST['haslo']; //Hasło podane przez użytkownika
  2. $_SESSION['login']=$_POST['login']; //Login podany przez użytkownika

Musisz filtrować to co dodajesz do bazy, to co z niej pobierasz, oraz wszelkie dane wprowadzone przez użytkownika. U Ciebie nie widać żadnego filtrowania.
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.