Avatar billede nc85 Nybegynder
24. juni 2004 - 13:34 Der er 9 kommentarer og
1 løsning

check om email findes?

Hey eksperter!

Jeg har udviklet sådan et system hvor du kan tilmelde sig til et nyhedsbrev!
Problemet er man kan blive ved og ved med at tilmelde sig! Dette er ikke meningen!

Hvordan gør jeg sådan mit "script" gennemchecker databasen for at se om emailen findes, og hvis den gør så skal den printe en meddelse ud om at man ikke kunne blive tilmeldt igen, da man allerede har tilmeldt sig 1 gang!

Min kode:

<?php
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
if(!empty($_POST['name']) && !empty($_POST['email'])) {

$connection = mysql_connect("mysql.webglobe.dk" , "xxx" , "xxx")
or die("cannot make connection");

$db = mysql_select_db("xxx" , $connection)
or die("cannot find database");
$sql_query = "INSERT INTO email (name, email) VALUES (\"$name\",\"$email\")";
$results = mysql_query($sql_query) or die(mysql_error());

echo ("<center><b>Tak for din tilmelding<br></center></b>");
}
?>
Avatar billede jaw Nybegynder
24. juni 2004 - 13:37 #1
$q = mysql_query("SELECT mail-felt FROM email WHERE mail-felt = '$email'");
$antal = mysql_num_rows($q);

if($antal > 0) {
  //mail findes og brugeren skal afvises
} else {
  //indsæt brugeren, da han ikke findes allerede
}
Avatar billede codebase Praktikant
24. juni 2004 - 13:39 #2
$sql_query = "SELECT * FROM email WHERE email='$email'";
$results = mysql_query($sql_query) or die(mysql_error());
$num = mysql_num_rows($results);
if ( $num == 0 )
{

$sql_query = "INSERT INTO email (name, email) VALUES (\"$name\",\"$email\")";
$results = mysql_query($sql_query) or die(mysql_error());

echo ("<center><b>Tak for din tilmelding<br></center></b>");

}
else
echo ("<center><b>Mester, du er jo oprettet en gang!<br></center></b>");
Avatar billede dennismp Nybegynder
24. juni 2004 - 13:40 #3
En anden ting; Du bør sende en mail til den email man indtaster med en link/kode som man skal bruge før emailen accepteres. Dette tjener to formål:

1) Du får tjekket om emailen vitterlig eksisterer
2) Hvis du indtaster min email, vil jeg betragte dit nyhedsbrev som spam - derfor er det vigtigt at sende en email og sørge for at få bekræftet at man ønsker nyhedsbrevet. Du får med andre ord sikret at ejeren af emailen også skal godkende tilmeldingen - før du sender nyheder ud.
Avatar billede nc85 Nybegynder
24. juni 2004 - 13:40 #4
Så scriptet skal se således ud?:

<?php
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
if(!empty($_POST['name']) && !empty($_POST['email'])) {

$connection = mysql_connect("mysql.webglobe.dk" , "paradis" , "para04")
or die("cannot make connection");

$db = mysql_select_db("paradis" , $connection)
or die("cannot find database");
$sql_query = "INSERT INTO email (name, email) VALUES (\"$name\",\"$email\")";
$q = mysql_query("SELECT mail-felt FROM email WHERE mail-felt = '$email'");
$antal = mysql_num_rows($q);

if($antal > 0) {
    echo ("Du er allerede tilmeld, og kan derfor ikke blive tilmeldt igen");
  //mail findes og brugeren skal afvises
} else {
  //indsæt brugeren, da han ikke findes allerede
}

$results = mysql_query($sql_query) or die(mysql_error());

echo ("<center><b>Tak for din tilmelding<br></center></b>");
}
?>
Avatar billede jaw Nybegynder
24. juni 2004 - 13:42 #5
Nok nærmere sådan her:
<?php
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
if(!empty($_POST['name']) && !empty($_POST['email'])) {

$connection = mysql_connect("mysql.webglobe.dk" , "paradis" , "para04")
or die("cannot make connection");
$db = mysql_select_db("paradis" , $connection)
or die("cannot find database");

$q = mysql_query("SELECT mail-felt FROM email WHERE mail-felt = '$email'");
$antal = mysql_num_rows($q);

if($antal > 0) {
    echo ("Du er allerede tilmeld, og kan derfor ikke blive tilmeldt igen");
    exit;
} else {
  $sql_query = "INSERT INTO email (name, email) VALUES (\"$name\",\"$email\")";
}

$results = mysql_query($sql_query) or die(mysql_error());

echo ("<center><b>Tak for din tilmelding<br></center></b>");
}
?>
Avatar billede nc85 Nybegynder
24. juni 2004 - 13:46 #6
Det virker ikke! Den tilmelder stadig en selvom du er i databasen!
Avatar billede jaw Nybegynder
24. juni 2004 - 13:48 #7
<?php
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
if(!empty($_POST['name']) && !empty($_POST['email'])) {

$connection = mysql_connect("mysql.webglobe.dk" , "paradis" , "para04")
or die("cannot make connection");
$db = mysql_select_db("paradis" , $connection)
or die("cannot find database");

$q = mysql_query("SELECT email FROM email WHERE email = '$email'");
$antal = mysql_num_rows($q);

if($antal > 0) {
    echo ("Du er allerede tilmeld, og kan derfor ikke blive tilmeldt igen");
    exit;
} else {
  $sql_query = "INSERT INTO email (name, email) VALUES (\"$name\",\"$email\")";
  $results = mysql_query($sql_query) or die(mysql_error());
  echo ("<center><b>Tak for din tilmelding<br></center></b>");
}
}
?>
Avatar billede jaw Nybegynder
24. juni 2004 - 13:49 #8
Jeg havde bare kaldt dem mail-felt, det ved jeg ikke om du selv rettede, ellers er det rettet nu + et par ekstra småting...
Avatar billede nc85 Nybegynder
24. juni 2004 - 13:49 #9
Hov, det virkede skam alligevel, bare lige mig der skulle rette noget til :)

Tak for det! Lægger du lige et svar!?
Avatar billede jaw Nybegynder
24. juni 2004 - 13:49 #10
Det kan du tro og selv tak :)
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