Šel by pomocí php udělat takový skript, který při přidání nového záznamu přes formulář do databáze odešle maily s tímto záznamem na maily, které jsou uvedeny v databázi (mysql)?
Fórum › PHP
[E-mal] Při zadání nového záznamu do databáze odeslat mail
tuhle funkci mail() mam pouzit pri skriptu, cez ktery přidavam zaznamy do databáze?
script pro přidání záznamu do databáze vypadá takto:
$query = "insert into zpravy (autor, text) values ('$autor', '$text');";
netusim kam bych to mel vlozit...
Tak jelikoz chces e-mailem odeslat vlozena data, tak ve skriptu, kde provedes vlozeni do databaze, provedes i odeslani dat, protoze by bylo zbytecne je znovu z databaze "tahat". Takze to co jsi poslal, za tim nejspise existuje mysql_query (v minulem prispevku jsem chybne pouzil db_query, je to ze sady mych vlastnich funkci, cim z jsem te zrejme mystifikoval). Cely kod by tedy mohl vypadat takto:
// Predpokladejme ze $link obsahuje identifikator spojeni s databazi
// Zde vkladas data odeslana formularem do databaze -- tvoje reseni
$query = "insert into zpravy (autor, text) values ('$autor', '$text')";
$result = mysql_query($query, $link);
// Zde nejake osetreni, zda-li probehlo vlozeni uspesne
// A ted jeste odesleme vlozena data na maily
// Jmeno tabulky a nazvy entit si musis samozrejme upravit dle sebe
$stmt = "SELECT mail FROM users";
$result = mysql_query($stmt, $link);
$msq = "Do databaze byly vlozeny tyto informace: " . $autor . " a " . $text;
// A ted projdu vsechny vysledky a na kazdy mail odeslu zpravu
while($row = mysql_fetch_object($result)) mail($row->mail, "Posledni vlozena data do DB", $msg);
script jsem upravil podle navodu. Při vložení nové zprávy do DB se odesle mail s předmětem: Posledni vlozena data do DB. V těle zprávy ale nic není - žádná zpráva se do těla nepřipojila.
kod mam tedy takovy:
<?php
include "config.php"; // connect to DB
mysql_query("SET NAMES utf8");
$autor = trim($_REQUEST['autor']);
$text = trim($_REQUEST['text']);
$query = "insert into zpravy (autor, text) values ('$autor', '$text');";
mysql_query($query);
// A ted jeste odesleme vlozena data na maily
$stmt = "SELECT mail FROM uzivatele";
$result = mysql_query($stmt);
$msq = "Do databaze byly vlozeny tyto informace: ".$autor." a ".$text;
// A ted projdu vsechny vysledky a na kazdy mail odeslu zpravu
while($row = mysql_fetch_object($result)) mail($row->mail, "Posledni vlozena data do DB", $msg);
header('Location: zpravy.php');
?>
To prema : kdyz se mrknes na obsah fora php, tak hned na prvni strance jsou asi 3 prispevky resici funkci mail, 2 z nich dokonce diakritiku v mailech :)
Konecne jsem to dodelal.
Problem byl v tom, ze vysledky jsou odesilany v utf a ja je posilal na maily v necem jinym... Po deklaraci utf jede vse v poho.
Lidi, diky moc
$stmt = "SELECT mail FROM maily";
$result = mysql_query($stmt);
$msq = $jmeno.": ".$text;
$headers = 'From: mail@google.com'."\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8'."\r\n";
// A ted projdu vsechny vysledky a na kazdy mail odeslu zpravu
while($row = mysql_fetch_object($result)) mail($row->mail, "Nova zprava z webu", $msq, $headers);
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Pridanie noveho zaznamu do spajaneho zoznamu — založil peter99
Spocitanie pri kazdom zadani z klavesnice — založil LuKeSkO
Vkladani zaznamu z XML do databaze — založil Anonymní uživatel
Smazani nekolika zaznamu z velke databaze — založil lojza
Chyba pri editaci zaznamu v DB — založil tribalcz
Moderátoři diskuze