Avatar billede woogoo Nybegynder
18. september 2006 - 10:25 Der er 5 kommentarer

Problem i Newsletter script

Hey eksperter..

jeg har et script som der er nogen problemer med.. siden gider simpelthen bare ikke vises og kan ikke finde fejlen.. er der nogen der kan hjælpe mig?

<html>
<head>
<title>The New Brand's Nyhedsbrev</title>
</head>
<body>
</body>
</html>

<?php

include_once('inc/connect_db.php');
 
$email = trim($_POST['email']); 

function KravTilEmail( $email ) {
return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email);
}

  // Vi tjekker lige om vi skal se formularen
  if ($_POST[op] != "ds") {
    $formular = "
    <form method=POST action=\"$_SERVER[PHP_SELF]\">
 
    <p><span class=neutral><font color="#000000" face="verdana" size="1">Din E-mail Adresse<strong>:</FONT></strong><br>
    <input type=text name=\"email\" size=40 maxlength=150>
    <br>
    <br>
    <input type=radio name=\"action\" value=\"tilmeld\" checked>
    <font color="#000000" face="verdana" size="1">Tilmeld nyhedsbrev</font>
    <input type=radio name=\"action\" value=\"afmeld\">
    <font color="#000000" face="verdana" size="1">frameld nyhedsbrev</font></span>
    <input type=\"hidden\" name=\"op\" value=\"ds\">
  <p><input type=submit name=\"submit\" value=\"OK\">
  </p>
    </form>";
 
  } else if (($_POST[op] == "ds") && ($_POST[action] == "tilmeld")) {
    //Tjekker lige om der er skrevet en email
    if ($_POST[email] == "") {
      header("Location: ?fejl=1");
        exit;
    }
   
    // Tjekker om der er skrevet en gyldig email-adresse.
        $krav_til_mail =
        "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$";
        $mail_krav_fejl = 'Invalid_Email_address';
        if (!eregi($krav_til_mail, $email)){
      header("Location: ?fejl=2");
        exit;          }
           
//Tjekker om email findes i DB
$GetNick = mysql_query("SELECT * FROM tilmeldte WHERE email = '".htmlspecialchars($email)."'");
$rs = mysql_fetch_array($GetNick);
if(strtolower($rs['email']) == strtolower($email) && strtolower($rs['email']) == strtolower($email)){
      header("Location: ?fejl=3");
}

// Skriver til DB
$Insert = mysql_query("INSERT INTO tilmeldte SET email = '".$email."'") OR die(mysql_error());
header("location: ?info=ok");

} else if (($_POST[op] == "ds") && ($_POST[action] == "afmeld")) {
    //Tjekker lige om der er skrevet en email
  if ($_POST[email] == "") {
    header("Location: ?fejl=1");
      exit;
  }
         
            // Tjekker om der er skrevet en gyldig email-adresse.
        $krav_til_mail =
        "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$";
        $mail_krav_fejl = 'Invalid_Email_address';
        if (!eregi($krav_til_mail, $email)){
      header("Location: ?fejl=2");
        exit;          }

//Tjekker om email findes i DB
$GetNick = mysql_query("SELECT * FROM tilmeldte WHERE email = '".htmlspecialchars($email)."'");
$rs = mysql_fetch_array($GetNick);
if(strtolower($rs['email']) != strtolower($email) && strtolower($rs['email']) != strtolower($email)){
      header("Location: manage.php?fejl=4");
            exit;

}
// Sletter fra DB
$Slet = mysql_query("DELETE FROM tilmeldte WHERE email = '".$email."'") OR die(mysql_error());
header("location: ?info=ok_afmeld");
}
?>
<style type="text/css">
<!--
@import url("farver_til_ok_og_fejl.css");
-->
</style>
<?php echo "$formular";

if($_GET['fejl'] == 1) {
echo "<span class=red><font face="verdana" size="1">Du har ikke skrevet nogen E-mail adresse</font></span>";
}
elseif($_GET['fejl'] == 2) {
echo "<span class=red><font face="verdana" size="1">E-mail adressen er ikke gyldig</font></span>";
}
elseif($_GET['fejl'] == 3) {
echo "<span class=red><font face="verdana" size="1">E-mail adressen findes allerede i Databasen</font></span>";
}
elseif($_GET['fejl'] == 4) {
echo "<span class=red><font face="verdana" size="1">E-mail adressen findes ikke i Databasen</font></span>";
}
elseif($_GET['info'] == "ok") {
echo "<span class=green><font face="verdana" size="1">Du er nu tilmeldt vores nyhedsbrev</font></span>";
}
elseif($_GET['info'] == "ok_afmeld") {
echo "<span class=green><font face="verdana" size="1">Du er nu afmeldt vores nyhedsbrev</font></span>";
}

?>
Avatar billede dkfire Nybegynder
18. september 2006 - 22:24 #1
Tjek alle dine <font> for ".
og så lige et tip, brug hellere styles istedet for <font>.

Hvorfor (strtolower($rs['email']) == strtolower($email) && strtolower($rs['email']) == strtolower($email)) ???
Er det ikke nok at tjekke det en gang ?
Avatar billede woogoo Nybegynder
19. september 2006 - 10:23 #2
dkfire >> Jeg ved ikke hvorfor den tjekker igen.. Det er ikke mig der har lavet scriptet.. og jeg forstår bare ikke hvorfor det ikke virker!
Avatar billede dkfire Nybegynder
19. september 2006 - 15:51 #3
En af dine store fejl er at du har skrevet " inde i en string. Ændre " til \" i alle strings, dvs der hvor du har indsat <font>
Avatar billede woogoo Nybegynder
20. september 2006 - 09:18 #4
Det er ordnet og det virker nu ved hjælp fra dig! ;) smid et svar og du får points!
Avatar billede dkfire Nybegynder
20. september 2006 - 14:13 #5
Jamen jeg svare da gerne.
Og så lige en sidste ting, prøv at bruge styles istedet for <font>, det er mere fremtidssikkert.
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