Beste mensen,

Ik heb een script gemaakt zodat mensen zich kunnen aanmelden voor een nieuwsbrief. Het lijkt alsof het script werkt maar toch is dit helaas niet zo. zodra ik een mailadres invul en op schrijf in klik dan wordt deze niet toegevoegd in de database. Verder werkt het script prima. Iemand enig idee wat er verkeerd is?

<?php

mysql_connect("***", "***", "***");
mysql_select_db("***") or die("Het volgende is mis gegaan in de database : ". mysql_error() ."");

$actie = $_GET['actie'];
$hetwachtwoord = "***";
$encrypted = md5($hetwachtwoord);
$onderwerp = "Nieuwsbrief van Lauwies-Systems.nl";
$mail_adres = "[email protected]";

function checkmail($email){ 
      $email_host = explode('@', $email); 
      $email_host = $email_host[1]; 
      $email_resolved = gethostbyname($email_host); 
      if ($email_resolved != $email_host && eregi('^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$',$email)) return true; 
      else return false; 
}



if($actie == "")
{
    echo('<center><strong>Schrijf je in</strong>
          <form action="?actie=schrijf-in" method="post">
          E-mail adres: <input type="text" name="email"><br />
          <input type="submit" name="submit" value="schrijf-in">
          </form>
          <a href="?actie=schrijf-uit">Schrijf je uit</a>
          </center>');
}

else if($actie == "schrijf-in")
{

    $email =  $_POST['email'];
    $ip = $_SERVER['REMOTE_ADDR'];

    if(empty($email))
    {
        die("Sorry, je moet eerst je E-mail adres invullen!");
    }

    elseif (checkmail($email) == 0)  
        {  
            echo "Dit is geen geldig E-mail adres!"; 
        } 
  
    else
    {
      
      mysql_query("INSERT INTO mailing-lijst (email, ip) VALUES ('$email', '$ip')");

      echo("Bedankt voor je deelname!");
    }
}

else if($actie == "beheer")
{
    echo('<form action="?actie=verstuur" method="post">
          Wachtwoord: <input type="password" name="wachtwoord"><br /><br />
          Mail inhoud:<br />
          <textarea rows="5" cols="50" name="inhoud"></textarea><br /><br />
          <input type="submit" name="submit" value="Verstuur">
          </form>');
}

else if($actie == "verstuur")
{

    $wachtwoord = $_POST['wachtwoord'];
        $wachtwoord = md5($wachtwoord);
    $inhoud = $_POST['inhoud'];
    if($wachtwoord == $encrypted)
    {    
        $res = mysql_query("SELECT * FROM `mailing-lijst`") or die(mysql_error());
        $bericht = "$inhoud \n\n\n------\nUitschrijven voor deze mailing lijst: www.lauwies-systems.nl";
        
        while($get = mysql_fetch_array($res))
        {

            $email = $get['email'];

            mail($email, $onderwerp, $bericht, "Van: $mail_adres");

            echo("Mail verstuurd naar $email<br />");
        }

        $totaal = mysql_num_rows($res);

        echo("<strong>-------------<br />");
        echo("Mail is naar $totaal mensen verstuurd.</strong>");
    }

    else
    {
        die("Ongeldig wachtwoord");
    }
} 


else if($actie == "schrijf-uit")
{
    echo('<center><strong>Uitschrijven</strong><form method="post" action="?actie=registratie-wissen">
          Jouw E-mail adres: <input type="text" name="schrijf-uit"><br /><br />
          <input type="submit" value="Schrijf uit">
          </form></center>');
}


elseif($actie == "registratie-wissen") { 
    mysql_query("DELETE FROM mailing-lijst WHERE email = '".$_POST['schrijf-uit']."'"); 
    echo "Je bent vanaf nu uit de database verwijderd! "; 
}

?>


Hier staat het werkende voorbeeld!

Bedankt alvast voor de moeite :)
Dus niemand kan me helpen?
kun je het w8 geven dan test ik het met mijn eigen mail
Welk wachtwoord? Je bedoeld het wachtwoord om de mail te versturen denk ik?
Het wachtwoord voor ?actie=beheer is :

T3st

Je zult zien dat zodra jij een mail verstuurd dat deze naar 0 mensen wordt verstuurd omdat je niet in de database word opgenomen
Heeft nog iemand het getest en misschien een oplossing gevonden?
<?php
mysql_query("INSERT INTO mailing-lijst (email, ip) VALUES ('$email', '$ip')");
?>
vervang dat eens door
<?php
mysql_query("INSERT INTO mailing-lijst (email, ip) VALUES ('$email', '$ip')") or die(mysql_error());
?>
En post dan eens de melding die je voorgeschoteld krijgt.

PS: wil je meteen een voorbeeld van wat het betere scripten*** is:
<?php
mysql_query("INSERT INTO mailing-lijst (email, ip) VALUES ('".$email."', '".$ip."')") or die(mysql_error());
?>

**opscheptaal, maar onthoud 1 ding: variablen buiten haakjes! Vergroot de algemene leesbaarheid ontzettend!

Reageren