Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 13:46 Der er 27 kommentarer og
1 løsning

Indsætning af navn i et nyhedsbrev

Hej har et problem med min nuværende nyhedsbrev udsender eller ikke et problem.

Jeg ville gerne kunne skrive $navn for at den så printer navnet hvis jeg nu skrive Hej $navn, det kan den endtlig også hvis jeg skriver det i koden i kan lige få et eks.

    $emails = mysql_query("SELECT * FROM users WHERE nyhedsbrev='1'") or die(mysql_error());
    $i = 0;
    while($r = mysql_fetch_array($emails)) {

    $to = $r[email];
    $subject = $rr[emne];
    $besked = nl2br($rr[tekst]);
    $navn = $r[fornavn];
    $message = "
    $besked
    <hr><br>
    Ønsker du ikke at modtage dette nyhedsbrev? Log da ind på Fågavekort.dk, under ret profil kan du vælge om du vil modtage det eller ej.";

    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    // Additional headers
    $headers .= 'From: FåGavekort.dk <kontakt@danielj.dk>' . "\r\n";

    mail($to, $subject, $message, $headers);
    $i++;
    }

Hvis jeg indsætter $navn i den rå kode skriver den godt nok navnet

Men jeg har gjort sådan at jeg kan skrive et nyhedsbrev og hver gang jeg er færdig gemmer jeg den i min mysql også kan jeg udsende, problemet ligger i at jeg ikke kan få den til at printe navnet hvis jeg gemmer et nyhedsbrev, men kan sagtens få det til at virke hvis jeg f.eks skrive $navn før $besked men vil gerne have mulighed for at kunne skrive $navn eller andet også med mulighed for at gemme nyhedsbrevet i mysql
Avatar billede agurken Nybegynder
10. februar 2010 - 14:12 #1
En god ting at gøre når du tilføjer en variabel med en tekst er at dele dem således: echo "Tekst 1 ".$variabel." tekst 2";

Og så skal jeg forstå dig ret.

Du har det brev som du vil sende til dem der vil have det.

Du har en database med alle de navne der vil have brevet, og så vil du have at hver persons navn skal med i brevet, og det virker fint. Men dit problem er at, du også kan gemme brevet i en database. Men når du gør det kommer navnet ikke med?

Er det dit problem?
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:18 #2
Jeps det er mit problem så kommer navnet kun frem som $navn
Avatar billede agurken Nybegynder
10. februar 2010 - 14:21 #3
Og hvor gemmer du brevet henne?

Og hvordan gemmer du den? Inde i den der while?
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:22 #4
Altså har også spekuleret over at dele dem op men det er fordi jeg har et helt kontrolpanel hvor jeg skriver et navn til nyhedsbrevet så emnet også hovedindholdet

Men så ku jeg selvfølgelig også hvis jeg ska illustrere det i tekst

Navn på nyhedsbrev
Emne
Overskrift($tekst1)
$navn(i koden)
Hovedindhold[$tekst2)
$footer

Men så skal jeg hvis jeg ikke vil have navnet med i ind og ændre i koden og det synes jeg ville være for meget pille arbejde hele tiden at skulle ind på min ftp
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:24 #5
Du kan lige se koden her

http://pastebin.com/m69b0d0e7
Avatar billede agurken Nybegynder
10. februar 2010 - 14:27 #6
Og du vil have en kopi af hvert brev, med hver enkelt navn gemt i en anden tabel eller database? Eller i samme tabel som navnet?
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:29 #7
Nej vil endtligt bare have mulighed for at skrive $navn inde i $message når jeg bruger mit kontrolpanel
Avatar billede agurken Nybegynder
10. februar 2010 - 14:31 #8
Nåå, du vil ha navnet med i mailen?
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:31 #9
Eller i fag sprogt mit textarea
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:33 #10
Ja i store drag den henter nyhedsbrevet fra mysql altså

Gem nyhedsbrev
Send henter nyhedsbrev fra nyhedsbrev table
Sender til folk med nyhedsbrev = 1

Men ved ikke om det muligt at kunne skrive variabler når man gemmer i mysql om mysql ka tolke det
Avatar billede agurken Nybegynder
10. februar 2010 - 14:35 #11
Okay, så har jeg bare misforstået dig lidt :p

Prøv med:

$message = "
Hejsa ".$navn." også resten af din mail her";
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:38 #12
Så skriver den \".$navn.\"
Avatar billede agurken Nybegynder
10. februar 2010 - 14:39 #13
Hmm hva så med

$navn = $r['fornavn'];

$message = "
Hejsa ".$navn." også resten af din mail her";
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:42 #14
Den laver det samme, men måske ville det bare være "nemmere" bare at dele det op
Avatar billede agurken Nybegynder
10. februar 2010 - 14:46 #15
Måske

Du kunne jo prøve:

$message = "Første del";
$message .= $navn;
$message .= "anden del";
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 14:49 #16
$to = $r[email];
    $subject = $rr[emne];
    $besked1 = nl2br($rr[tekst1]);
    $besked2 = nl2br($rr[tekst2]);
    $navn = "Kære $r[fornavn]";
    $message = "
    $besked1
    $navn
    $besked2
    <hr><br>
    Ønsker du ikke at modtage dette nyhedsbrev? Log da ind på Fågavekort.dk, under ret profil kan du vælge om du vil modtage det eller ej.";

Har bare gjort sådan
Avatar billede majbom Novice
10. februar 2010 - 15:01 #17
du kunne også skrive [[NAVN]]

og så:

$message = str_replace('[[NAVN]]', $r['fornavn'], $message);
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 15:06 #18
Har fået problemet løst på en mere alternativ måde men tak alligevel :D
Avatar billede agurken Nybegynder
10. februar 2010 - 15:07 #19
Du skal huske at skilne mellem variabel og tekst..

"Tekst mellem gåseøjne".$VariabelForSigSelvEfterPunktum."Tekst igen efter punktum";

Ved ikke om det er der fejlen ligger men det har jeg en fornemmelse om. Så det skal se sådan her ud:

$to = $r[email];
    $subject = $rr[emne];
    $besked1 = nl2br($rr[tekst1]);
    $besked2 = nl2br($rr[tekst2]);
    $navn = "Kære $r[fornavn]";
    $message =
    $besked1.
    $navn.
    $besked2."
    <hr><br>
    Ønsker du ikke at modtage dette nyhedsbrev? Log da ind på Fågavekort.dk, under ret profil kan du vælge om du vil modtage det eller ej.";
Avatar billede agurken Nybegynder
10. februar 2010 - 15:07 #20
Hvad var problemet?
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 15:10 #21
ved det ikke, men lavede bare to bokse som begge blev gemt som tekst1 og tekst2 i mysql'en også er de $besked1 og $besked2 og inde imellem kommer altid Kære $navn]



$besked1
$navn
$besked2 og det viker fint en alternativ løsning men en der virker :P
Avatar billede majbom Novice
10. februar 2010 - 15:11 #22
hehe ja den er lidt alternativ :)

det er en god ting at smide ' rundt om dine array indexes:

$r['navn'] i stedet for $r[navn]
Avatar billede Stuffa1991 Nybegynder
10. februar 2010 - 15:18 #23
Hvad gør forskellen?
Avatar billede majbom Novice
10. februar 2010 - 15:20 #24
uden ' vil serveren først lede efter en konstant, som den ikke kan finde og derefter vil den bruge strengen
Avatar billede coderdk Praktikant
12. februar 2010 - 08:53 #25
Hvis jeg forstår dig ret:

Hej %NAVN%

Dette gemmer du i MySQL, når du skal sende brevet så laver du en $tekst = str_replace( "%NAVN%", $navn );
Avatar billede majbom Novice
12. februar 2010 - 11:11 #26
-> #25 - lidt ligesom #17 :) ?
Avatar billede coderdk Praktikant
12. februar 2010 - 17:00 #27
lol splazz, præcis :D
Avatar billede majbom Novice
12. februar 2010 - 17:26 #28
;)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester