30. december 2011 - 12:50Der er
4 kommentarer og 1 løsning
Sende nyhedsbrev ud med auto hent fra dben men hvordan ?
jeg har det her script som jeg sender nyhedsbrev ud med og det virker ganske fint men nu kunne jeg godt tænke mig at kunne sende nyhedsbrev ud med bruugerens navn i og det skal den hente fra dben men ved ikke lige hvordan ???
her er scripet som jeg bruger til at sende en test ud mig til mig selv så jeg kan se brevet inde jeg sender ud til alle håber i forstå eller spørg bare :D
det nyhedsbrev den henter nu er skrevet i html og ligger i dben
Du fortæller ikke hvor i dben brugerens navn står og heller ikke hvor i nyhedsbrevet du vil have indføjet brugerens navn. jeg skal derfor antage, at du har en database tabel 'bruger' med blandt andet felterne 'navn' og 'email' og at nyhedsbreet skal begynde med en hilsen som 'Kære Hans' eller hvad brugerens navn nu er.
Så kunne du udvide det kodeafsnit, der starter med
if ($_POST['valg'] == "send") {
således at du først søger det brugernavn der svarer til emailen, derefter definerer en variabel $indhold der starter med hilsenen og tilføjer emailens tekst ($res["html"]). Såsom:
if ($_POST['valg'] == "send") { $email = $_POST['email']; $navn = mysql_result(mysql_query("SELECT navn FROM bruger WHERE email = '$email'"),0);
$res = mysql_fetch_array(mysql_query("SELECT * FROM nyhedsbreve WHERE id = '".$_POST['id']."'"));
hey og godt nytår Christian_Belgien tak for svaret :D det virker enlig godt nok men ikke helt som jeg havde tænkt på for nu ser det lidt sjovt ud :D først kommer der
kære "brugernavn" og nede under starter html nyhedsbrevet jeg ville gerne have navnet ind i html nyhedsbrevet for jeg ville nemlig også lave et lille billede nederst i brevet på 1 x 1px som gav svar tilbage til en fil jeg har så jeg kunne se hvor mange der læste brevet og hvem der læste brevet og der skal jeg bruge deres id men alt det tror jeg godt jeg selv kan lave, jeg kan bare ikke finde ud af at få ting fra dben ind i html brevet. forstå du :D
Så du får nu brugernavnet trukket ud af databasen og indsat i mailen. Jamen det er da i sig selv et resultat. Jeg tillader mig derfor at oprette dette indlæg som svar.
Men det virker ikke helt som du havde tænkt. Jamen det er dig der ikke forklarede hvad du havde tænkt så jeg selv måtte gætte.
Det står mig stadig ikke krystalklart, hvad du vil opnå. Du siger, at du vil have navnet ind i html nyhedsbrevet. Så må jeg spørge:
1. Det du kalder html nyhedsbrevet, det er en tekst du bevarer i database tabellen 'nyheder' i feltet 'html', er det korrekt?
2. Når du siger, at du vil have navnet ind i html nyhedsbrevet, betyder det så, at navnet skal stå et bestemt sted i teksten? Lad os sige, at html nyhedsbrevets tekst er "Der kom en soldat gående hen ad landevejen, et, to et, to. Han havde sit tornister på ryggen og en sabel ved siden. Soldaten hed ......... og havde været i krigen, og nu skulle han hjem." Og så vil du have brugernavnet indsat der hvor prikkerne står. Er det noget i den henretning?
I så fald vil jeg foreslå, at du deler nynedsbrevets tekst i to tekster, html1 der er det før navnet og html2 der er det efter navnet. I tabellen 'nyheder' omdøber du så feltet 'html' til 'html1', og du tilfører et felt 'html2'.
Så kan du tilpasse min foreslåede kode således:
if ($_POST['valg'] == "send") { $email = $_POST['email']; $navn = mysql_result(mysql_query("SELECT navn FROM bruger WHERE email = '$email'"),0);
$res = mysql_fetch_array(mysql_query("SELECT * FROM nyhedsbreve WHERE id = '".$_POST['id']."'"));
har ikke lige testet det endnu men ja det er noget i den du der. men må lige spørge hvorfor sætter du punktum foran $indhold 2 af stederne?
det som jeg kalder html nyhedsbrev er at jeg har lavet en skabelon i dreamweaver i html som er gemt i databasen. og det er en desigen hvor jeg ændre teksten på og billeder på for hvert nyhedsbrev altså så ville jeg jo gerne have at der stod kære bruger inde i designet og ikke over designet og på sigt men nok ikke pt ville jeg gerne lave så når jeg sendte brevet ud så gik den selv ind i dben og fandt de 3 sidste nye billeder og film og satte det i brevet bare for at lætte mit arbejde lidt.
er det bedre forklare nu ? ellers prøver jeg igen :D
Hvis man siger $indhold = 'et eller andet', altså uden punktum, så slettes det der allerede står i $indhold (hvis der stod noget) før det nye indhold, 'et eller andet' bliver indført. Hvis du vil have 'et eller andet' tilføjet til det der allerede står skal du bruge .=
I første linie, $indhold = removeslashes($res["html1"]); sætter jeg variabelen $indhold til $res['html1'].
I næste linie vil TILFØJE det der er i $navn. Derfor bruger jeg .= Og ligeledes i tredje linie.
Når først du har sendt brevet, altså når brevet har forladt din computer og er på vej til modtageren, så kan brevet ikke længere gå ind i databasen og finde noget. Det er vel heller ikke det du mener, men at efter du har trykket på knappen til at sende nyhedsbrevet, så skal programmet gå ind i databaasen og finder de rigtige oplysninger, indføje dem i nyhedsbrevet, og derefter sende nyhedsbrevet. Det er præcis det der er formålet med kode som det jeg foreslår.
Forøvrigt kommer jeg til at stoppe her. Jeg håber det har været til nytte, så langt det går. Du giver ikke oplysninger nok til at jeg kan forstå sammenhængen mellem din dreamweaver skabelon, det du har i databasen, og de de navne og billeder du vil have indføjet, og det vil nok blive en meget lang historie at prøve at få det hele forklaret.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.