Avatar billede farhang Nybegynder
27. oktober 2006 - 09:47 Der er 16 kommentarer

Mysql mailliste update

Jeg er ved at oprette en mailliste, men fornavn bliver ikke opdateret i min database!  Hvad gør jeg forkert?

side1:
<form action="mailliste.php" method="post">
<fieldset style="width:160px;">
<legend>Nyhedsmail</legend>
<input type="text" name="fornavn" value="fornavn" size="22">
<input id="email" name="email" type="text" value="din@email.dk" /><br />
  <input type="submit" name="tilmeld" value="Tilmeld" />
  <input type="submit" name="frameld" value="Frameld" />
</fieldset>
</form>

side2:
    if(!strlen($email) == 0) {
        if(preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email) || preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/', $email)) {
            $resultat = mysql_query("SELECT null

FROM nyhedsbrev WHERE email='$email'");
           
            if(mysql_num_rows($resultat) > 0) {
                $besked = '<h2>Fejl</h2><p>E-mailadressen <em>'.$email.'</em> er allerede tilmeldt.</p>';
            } else {
                mysql_query("INSERT INTO nyhedsbrev (email,fornavn,tid) VALUES ('$email','$fornavn',NOW())");
Avatar billede michaeltryl Seniormester
27. oktober 2006 - 10:49 #1
du mangler at sætte $fornavn med en værdi
Avatar billede farhang Nybegynder
27. oktober 2006 - 11:17 #2
Den vil stadig ikke, selvom jeg retter det.
Avatar billede michaeltryl Seniormester
27. oktober 2006 - 13:03 #3
gemmer den fint emailen og er det hele koden fra side2 fu viser her for hvor får du $email fra
Avatar billede farhang Nybegynder
27. oktober 2006 - 13:45 #4
Den gemmer email og tid.

Skal jeg skrive hele side2-koden her?
Avatar billede sw_red_6 Nybegynder
27. oktober 2006 - 13:51 #5
det ville nok gøre det nemmere.
Avatar billede farhang Nybegynder
27. oktober 2006 - 13:58 #6
<?php
$email = $_REQUEST['email'];

$admin_email = 'mail@designunltd.dk';
$domaene = 'www.designunltd.dk';

$tilmeldt_header = "E-mailen ".$email." har tilmeldt sig maillisten";
$tilmeldt_besked = "E-mailadressen ".$email." er blevet tilmeldt maillisten. Du vil høre
    nærmere når der sker opdateringer på siden.\n\nDu kan besøge os via følgende link
    ".$domaene."\n\nDu kan framelde din e-mail via følgende link
    ".$domaene."&email=$email\n\nSpørgsmål kan rettes til
    webmasteren på ".$admin_email.". Tak for interessen og på genhør.\n\nMvh. Dit Navn";

$afmeldt_header = "E-mailen ".$email." har frameldt sig fra maillisten hos ".$domaene."";
$afmeldt_besked = "E-mailadressen ".$email." er blevet frameldt maillisten på ".$domaene.".
    Du finder os her ".$domaene."\n\nDu kan tilmelde dig igen her
    ".$domaene."\n\nMvh. Dit Navn";

mysql_connect("xxxxx", "xxxxx", "xxxxx") or die(mysql_error());
mysql_select_db("xxxxx");

echo '<form action="mailliste.php" method="post">
    <fieldset style="width:160px;">
    <input id="fornavn" name="fornavn" type="text" value="'.$fornavn.'" size="22">
        <input id="email" name="email" type="text" value="'.$email.'" /><br />
        <input type="submit" name="tilmeld" value="Tilmeld" />
        <input type="submit" name="frameld" value="Frameld" />
    </fieldset>
</form>';

if($_REQUEST['tilmeld']) {
    echo tilmeld($email);
}

if($_REQUEST['frameld']) {
    echo frameld($email);
}


function tilmeld($email) {
    global $admin_email;
    global $tilmeldt_header;
    global $tilmeldt_besked;

    if($email == 'mail@designunltd.dk') {
        return '<h2>Mailliste</h2><p>Indtast din e-mailadresse og klik på tilmeld.</p>';
    }
   
    if(!strlen($email) == 0) {
        if(preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email) || preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/', $email)) {
            $resultat = mysql_query("SELECT null FROM nyhedsbrev WHERE email='$email'");
           
            if(mysql_num_rows($resultat) > 0) {
                $besked = '<h2>Fejl</h2><p>E-mailadressen <em>'.$email.'</em> er allerede tilmeldt.</p>';
            } else {
                mysql_query("INSERT INTO nyhedsbrev (email,fornavn,tid) VALUES ('$email','$fornavn',NOW())");
               
                mail($email, $tilmeldt_header, $tilmeldt_besked, "From: " . $admin_email . "\nBcc: " . $admin_email) or exit('<p><strong>Uventet fejl - Prøv at framelde og derefter tilmelde din e-mailadresse igen ellers kontakt Webmasteren og meld fejlen</strong></p>');
               
                $besked = '<h2>Tak for tilmeldingen</h2><p>Du er nu registreret i maillisten med e-mailadressen <em>'.$email.'</em>. En mail med info er blevet sendt til din e-mailadresse.</p>';
            }
        } else {
            $besked = '<h2>Fejl</h2><p>Det lader til at du har angivet ugyldig e-mailadresse. Tjek at du ikke har tastet forkert og prøv igen. Ellers kontakt webmasteren og meld fejlen.</p>';
        }
    } else {
        $besked = '<h2>Fejl</h2><p>Du har ikke indtastet nogen e-mailadresse.</p>';
    }
   
    return $besked;
}

function frameld($email) {
    global $admin_email;
    global $afmeldt_header;
    global $afmeldt_besked;
   
    if(!strlen($email) == 0) {
        $resultat = mysql_query("SELECT email FROM nyhedsbrev WHERE email='$email'");

        if(mysql_num_rows($resultat) > 0) {
            mysql_query("DELETE FROM nyhedsbrev WHERE email='$email'");
           
            mail($email, $afmeldt_header, $afmeldt_besked, "From: " . $admin_email . "\nBcc: " . $admin_email);
           
            $besked = '<h2>Frameldt e-mail</h2><p>E-mailadressen <em>'.$email.'</em> er blevet frameldt maillisten. En sidste mail fra denne liste er blevet sendt til din e-mailadresse.</p>';
        } else {
            $besked = '<h2>Fejl</h2><p>E-mailadressen er <em>ikke</em> tilmeldt og kan derfor ikke frameldes.</p>';
        }
    } else {
        $besked = '<h2>Fejl</h2><p>Du har ikke indtastet nogen e-mailadresse.</p>';
    }
   
    return $besked;
}
?>
Avatar billede michaeltryl Seniormester
27. oktober 2006 - 14:11 #7
du har stadig ingen variabel med fornavn prøv at indsætte
$fornavn = $_REQUEST['fornavn'];
lige efter
$email = $_REQUEST['email'];
i anden linie
Avatar billede farhang Nybegynder
27. oktober 2006 - 14:27 #8
Det virker heller ikke?
Avatar billede michaeltryl Seniormester
27. oktober 2006 - 14:53 #9
prøv

echo $fornavn;

lige under $fornavn = $_REQUEST['fornavn']; om den fint nok henter det fra formularen
Avatar billede farhang Nybegynder
27. oktober 2006 - 15:09 #10
Det gør den. Hvorfor bliver det ikke opdateret så?
Avatar billede sw_red_6 Nybegynder
27. oktober 2006 - 15:16 #11
fordi det er en funktion. Du mangler skal tilføje $fornavn til funktionskaldet.
prøv at ændre:
function tilmeld($email) {
til det her:
function tilmeld($email, $fornavn) {

og den her:
function frameld($email) {
til det her:
function frameld($email, $fornavn) {

og så skal der selvfølgelig også ændres på dem her:
if($_REQUEST['tilmeld']) {
    echo tilmeld($email);
}

if($_REQUEST['frameld']) {
    echo frameld($email);
}

til det her:
if($_REQUEST['tilmeld']) {
    echo tilmeld($email, $fornavn);
}

if($_REQUEST['frameld']) {
    echo frameld($email, $fornavn);
}
Avatar billede farhang Nybegynder
27. oktober 2006 - 15:23 #12
Ja, nu virker det.

Kan jeg tilføje flere felter?
Avatar billede sw_red_6 Nybegynder
27. oktober 2006 - 16:20 #13
sagtens. Du skal bare huske at tilføje dem på samme måde som $fornavn
Avatar billede farhang Nybegynder
28. oktober 2006 - 15:42 #14
Hvorfor bliver mysql ikke opdateret med nedenstående?

<?php
$email = $_REQUEST['email'];
$fornavn = $_REQUEST['fornavn'];
$efternavn = $_REQUEST['efternavn'];
$adresse = $_REQUEST['adresse'];
$postnr= $_REQUEST['postnr'];
$by = $_REQUEST['by'];
$telefon = $_REQUEST['telefon'];
$mobil = $_REQUEST['mobil'];


$admin_email = 'mail@designunltd.dk';
$domaene = 'www.designunltd.dk';

$tilmeldt_header = "E-mailen ".$email." har tilmeldt sig maillisten";
$tilmeldt_besked = "E-mailadressen ".$email." er blevet tilmeldt maillisten. Du vil høre
    nærmere når der sker opdateringer på siden.\n\nDu kan besøge os via følgende link
    ".$domaene."\n\nDu kan framelde din e-mail via følgende link
    ".$domaene."&email=$email\n\nSpørgsmål kan rettes til
    webmasteren på ".$admin_email.". Tak for interessen og på genhør.\n\nMvh. Dit Navn";

$afmeldt_header = "E-mailen ".$email." har frameldt sig fra maillisten hos ".$domaene."";
$afmeldt_besked = "E-mailadressen ".$email." er blevet frameldt maillisten på ".$domaene.".
    Du finder os her ".$domaene."\n\nDu kan tilmelde dig igen her
    ".$domaene."\n\nMvh. Dit Navn";

mysql_connect("xxxxx", "xxxxx", "xxxxx") or die(mysql_error());
mysql_select_db("xxxxx");

echo '<link href="library/fonts.css" rel="stylesheet" type="text/css" />
<form action="nyhedsbrevvalidering.php" method="post">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td height="20" width="20%"><font class="indemenu">&nbsp;Fornavn:</font></td>
              <td colspan="3" width="79%" height="20">
                <input id="fornavn" type="text" name="fornavn" value="'.$fornavn.'" size="22">              </td>
              <td colspan="5" height="20" width="1%"></td>
            </tr>
            <tr>
              <td colspan="9" width="100%" height="5"></td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Efternavn:</font></td>
              <td colspan="3" height="20">
                <input id="efternavn" type="text" name="efternavn" value="'.$efternavn.'" size="22">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Adresse:</font></td>
              <td colspan="3" height="20">
                <input id="adresse" type="text" name="adresse" value="'.$adresse.'" size="22">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Postnr.:</font></td>
              <td colspan="3" height="20">
                <input id="postnr" type="text" name="postnr" value="'.$postnr.'" size="22" maxlength="4">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"></td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;By:</font></td>
              <td colspan="3" height="20">
                <input id="by" type="text" name="by" value="'.$by.'" size="22">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Telefon:</font></td>
              <td colspan="3" height="20">
                <input id="telefon" type="text" name="telefon" value="'.$telefon.'" size="22" maxlength="8">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Mobil:</font></td>
              <td colspan="3" height="20"><input id="mobil" type="text" name="mobil" value="'.$mobil.'" size="22" maxlength="8"></td>
              <td colspan="5" height="20">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;E-mail:</font></td>
              <td colspan="3" height="20"><font class="indemenu">
                <input id="email" name="email" type="text" value="'.$email.'" />&nbsp;<strong>*</strong></font>              </td>
              <td colspan="5" height="20">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
                        <tr>
                          <tr align="center" valign="middle">
              <td colspan="9" height="25">
                <input type="submit" name="tilmeld" value="Tilmeld" />
  <input type="submit" name="frameld" value="Frameld" /></td>
            </tr>
          </table>
</form>';

if($_REQUEST['tilmeld']) {
    echo tilmeld($email,$fornavn,$efternavn,$adresse,$postnr,$by,$telefon,$mobil);
}

if($_REQUEST['frameld']) {
    echo frameld($email,$fornavn,$efternavn,$adresse,$postnr,$by,$telefon,$mobil);
}


function tilmeld($email,$fornavn,$efternavn,$adresse,$postnr,$by,$telefon,$mobil) {
    global $admin_email;
    global $tilmeldt_header;
    global $tilmeldt_besked;

    if($email == 'mail@designunltd.dk') {
        return '<h2>Mailliste</h2><p>Indtast din e-mailadresse og klik på tilmeld.</p>';
    }
   
    if(!strlen($email) == 0) {
        if(preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email) || preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/', $email)) {
            $resultat = mysql_query("SELECT null FROM nyhedsbrev WHERE email='$email'");
           
            if(mysql_num_rows($resultat) > 0) {
                $besked = '<h2>Fejl</h2><p>E-mailadressen <em>'.$email.'</em> er allerede tilmeldt.</p>';
            } else {
                mysql_query("INSERT INTO nyhedsbrev (email,fornavn,efternavn,adresse,postnr,by,telefon,mobil,tid) VALUES ('$email','$fornavn','$efternavn','$adresse','$postnr','$by','$telefon','$mobil',NOW())");
               
                mail($email, $tilmeldt_header, $tilmeldt_besked, "From: " . $admin_email . "\nBcc: " . $admin_email) or exit('<p><strong>Uventet fejl - Prøv at framelde og derefter tilmelde din e-mailadresse igen ellers kontakt Webmasteren og meld fejlen</strong></p>');
               
                $besked = '<h2>Tak for tilmeldingen</h2><p>Du er nu registreret i maillisten med e-mailadressen <em>'.$email.'</em>. En mail med info er blevet sendt til din e-mailadresse.</p>';
            }
        } else {
            $besked = '<h2>Fejl</h2><p>Det lader til at du har angivet ugyldig e-mailadresse. Tjek at du ikke har tastet forkert og prøv igen. Ellers kontakt webmasteren og meld fejlen.</p>';
        }
    } else {
        $besked = '<h2>Fejl</h2><p>Du har ikke indtastet nogen e-mailadresse.</p>';
    }
   
    return $besked;
}

function frameld($email,$fornavn,$efternavn,$adresse,$postnr,$by,$telefon,$mobil) {
    global $admin_email;
    global $afmeldt_header;
    global $afmeldt_besked;
   
    if(!strlen($email) == 0) {
        $resultat = mysql_query("SELECT email FROM nyhedsbrev WHERE email='$email'");

        if(mysql_num_rows($resultat) > 0) {
            mysql_query("DELETE FROM nyhedsbrev WHERE email='$email'");
           
            mail($email, $afmeldt_header, $afmeldt_besked, "From: " . $admin_email . "\nBcc: " . $admin_email);
           
            $besked = '<h2>Frameldt e-mail</h2><p>E-mailadressen <em>'.$email.'</em> er blevet frameldt maillisten. En sidste mail fra denne liste er blevet sendt til din e-mailadresse.</p>';
        } else {
            $besked = '<h2>Fejl</h2><p>E-mailadressen er <em>ikke</em> tilmeldt og kan derfor ikke frameldes.</p>';
        }
    } else {
        $besked = '<h2>Fejl</h2><p>Du har ikke indtastet nogen e-mailadresse.</p>';
    }
   
    return $besked;
}
?>
Avatar billede sw_red_6 Nybegynder
30. oktober 2006 - 10:25 #15
hmm for det første er by et reserveret ord som du nok skal ændre til noget andet, men for at afprøve om det skulle være derfor så prøv med den her sql-sætning:
mysql_query("INSERT INTO nyhedsbrev (email,fornavn,efternavn,adresse,postnr,`by`,telefon,mobil,tid) VALUES ('$email','$fornavn','$efternavn','$adresse','$postnr','$by','$telefon','$mobil',NOW())");

Forresten hvad skriver den af besked når du prøver?
Avatar billede farhang Nybegynder
29. november 2006 - 15:13 #16
Tak for hjælpen. Smid et svar.
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