Avatar billede MarkA Praktikant
09. november 2004 - 17:34 Der er 6 kommentarer og
1 løsning

Bruger og email check

Er der nogle der kan se hvad der er galt. Jeg vil lave det sådan at den checker om brugenavn og email allerede findes. Men selvom jeg skriver det samme navn så opretter den et post i databasen


<?


// Laver post-felterne om til variabler
$Brugernavn = $_POST['Fornavn'];
$Password = $_POST['Password'];
$Fornavn = $_POST['Fornavn'];
$Efternavn = $_POST['Efternavn'];
$Alder = $_POST['Alder'];
$City = $_POST['City'];
$Interesser = $_POST['Interesser'];
$Bilinfo = $_POST['Bilinfo'];
$Email = $_POST['Email'];
$Sms = $_POST['Sms'];
$Msn = $_POST['Msn'];
/* Lets strip some slashes in case the user entered
any escaped characters. */

$Brugernavn = stripslashes($Brugernavn);
$Password = stripslashes($Password);
$Fornavn = stripslashes($Fornavn);
$Efternavn = stripslashes($Efternavn);
$Alder = stripslashes($Alder);
$City = stripslashes($City);
$Interesser = stripslashes($Interesser);
$Bilinfo = stripslashes($Bilinfo);
$Email = stripslashes($Email);
$Sms = stripslashes($Sms);
$Msn = stripslashes($Msn);


/* Do some error checking on the form posted fields */



if(!$Brugernavn){
        echo 'Brugernavn SKAL udfyldes!!!<br />';
    }
if(!$Password){
        echo 'Password SKAL udfyldes!!!<br />';
    }

    if(!$Fornavn){
        echo 'Fornavn SKAL udfyldes!!!<br />';
    }
    if(!$Efternavn){
        echo 'Efternavn SKAL udfyldes!!!<br />';
    }

    if(!$Alder){
        echo 'Alder SKAL udfyldes!!!<br />';
    }

    if(!$City){
        echo 'By SKAL udfyldes!!!<br />';
    }

    if(!$Interesser){
        echo 'Interesser SKAL udfyldes!!!<br />';
    }

    if(!$Bilinfo){
        echo 'Info om bilen SKAL udfyldes!!!<br />';
    }

    if(!$Email){
        echo 'Email SKAL udfyldes!!!<br />';
    }



require 'db.php';

$sql = mysql_query("INSERT INTO Member(Id,Brugernavn,Password,Fornavn,Efternavn,Alder,City,Interesser,Bilinfo,Email,Sms,Msn) VALUES ('$Id','$_POST[Brugernavn]',
'$_POST[Password]','$_POST[Fornavn]','$_POST[Efternavn]','$_POST[Alder]','$_POST[City]','$_POST[Interesser]','$_POST[Bilinfo]','$_POST[Email]','$_POST[Sms]', '$_POST[Msn]')") or die(mysql_error());

if (mysql_query) {
  header("location: /homepage/members/members.php");


$sql_Email_check = mysql_query("SELECT Email FROM member WHERE Email='$Email'");
$sql_Brugernavn_check = mysql_query("SELECT Brugernavn FROM Member WHERE Brugernavn='$Brugernavn'");

$Email_check = mysql_num_rows($sql_email_check);
$Brugernavn_check = mysql_num_rows($sql_Brugernavn_check);

if(($Email_check > 0) || ($Brugernavn_check > 0)){
    echo "Følgende skal rettes da: <br />";
    if($email_check > 0){
        echo "<strong>Din email-adresse allerede er brugt en gang i vores database. Du bedes vælge en anden!<br />";
        unset($email_address);
    }
    if($username_check > 0){
        echo "Dit brugernavn allerede er i vores database. Du bedes vælge et andet!<br />";
        unset($username);
    }
    include 'index.htm'; // Viser formulaern igen hvis der er en fejl
    exit();  // exit scriptet så brugeren ikke bliver oprettet hvis bruger eller email allerede findes i database
}



}


?>
Avatar billede Slettet bruger
09. november 2004 - 18:06 #1
yep det gør den.. du indsætter jo brugeren inden du checker om den eksisterer..
så du skal nedenunder dit check lave

else {
  $sql = mysql_query("INSERT INTO Member(Id,Brugernavn,Password,Fornavn,Efternavn,Alder,City,Interesser,Bilinfo,Email,Sms,Msn) VALUES ('$Id','$_POST[Brugernavn]','$_POST[Password]','$_POST[Fornavn]','$_POST[Efternavn]','$_POST[Alder]','$_POST[City]','$_POST[Interesser]','$_POST[Bilinfo]','$_POST[Email]','$_POST[Sms]', '$_POST[Msn]')") or die(mysql_error());
}
  echo "Bruger oprettet";
}

så du altså flytter din indsætning ned efter du har checket om brugernavnet findes..
Avatar billede MarkA Praktikant
09. november 2004 - 18:20 #2
tak... havde jeg fundet ud af lidt før..... men nu virker det med email check men ikke med bruger check
Avatar billede MarkA Praktikant
09. november 2004 - 18:20 #3
dette er min nye kode:


<?


// Define post fields into simple variables
$Brugernavn = $_POST['Fornavn'];
$Password = $_POST['Password'];
$Fornavn = $_POST['Fornavn'];
$Efternavn = $_POST['Efternavn'];
$Alder = $_POST['Alder'];
$City = $_POST['City'];
$Interesser = $_POST['Interesser'];
$Bilinfo = $_POST['Bilinfo'];
$Email = $_POST['Email'];
$Sms = $_POST['Sms'];
$Msn = $_POST['Msn'];
/* Lets strip some slashes in case the user entered
any escaped characters. */

$Brugernavn = stripslashes($Brugernavn);
$Password = stripslashes($Password);
$Fornavn = stripslashes($Fornavn);
$Efternavn = stripslashes($Efternavn);
$Alder = stripslashes($Alder);
$City = stripslashes($City);
$Interesser = stripslashes($Interesser);
$Bilinfo = stripslashes($Bilinfo);
$Email = stripslashes($Email);
$Sms = stripslashes($Sms);
$Msn = stripslashes($Msn);


/* Do some error checking on the form posted fields */



if(!$Brugernavn){
        echo 'Brugernavn SKAL udfyldes!!!<br />';
    }
if(!$Password){
        echo 'Password SKAL udfyldes!!!<br />';
    }

    if(!$Fornavn){
        echo 'Fornavn SKAL udfyldes!!!<br />';
    }
    if(!$Efternavn){
        echo 'Efternavn SKAL udfyldes!!!<br />';
    }

    if(!$Alder){
        echo 'Alder SKAL udfyldes!!!<br />';
    }

    if(!$City){
        echo 'By SKAL udfyldes!!!<br />';
    }

    if(!$Interesser){
        echo 'Interesser SKAL udfyldes!!!<br />';
    }

    if(!$Bilinfo){
        echo 'Info om bilen SKAL udfyldes!!!<br />';
    }

    if(!$Email){
        echo 'Email SKAL udfyldes!!!<br />';
    }



require 'db.php';

$sql_Email_check = mysql_query("SELECT Email FROM member WHERE Email='$Email'");
$sql_Brugernavn_check = mysql_query("SELECT Brugernavn FROM member WHERE Brugernavn='$Brugernavn'");

$Email_check = mysql_num_rows($sql_Email_check);
$Brugernavn_check = mysql_num_rows($sql_Brugernavn_check);

if(($Email_check > 0) || ($Brugernavn_check > 0)){
    echo "Følgende skal rettes da: <br />";
    if($Email_check > 0){
        echo "<strong>Din email-adresse allerede er brugt en gang i vores database. Du bedes vælge en anden!</strong><br />";
        unset($email);
    }
    if($Brugernavn_check > 0){
        echo "<strong>Dit brugernavn allerede er i vores database. Du bedes vælge et andet!<br /></strong>";
        unset($Brugernavn);
    }
    include 'join_form.php'; // Viser formulaern igen hvis der er en fejl
    exit();  // exit scriptet så brugeren ikke bliver oprettet hvis bruger eller email allerede findes i database
}



$sql = mysql_query("INSERT INTO Member(Id,Brugernavn,Password,Fornavn,Efternavn,Alder,City,Interesser,Bilinfo,Email,Sms,Msn) VALUES ('$Id','$_POST[Brugernavn]',
'$_POST[Password]','$_POST[Fornavn]','$_POST[Efternavn]','$_POST[Alder]','$_POST[City]','$_POST[Interesser]','$_POST[Bilinfo]','$_POST[Email]','$_POST[Sms]', '$_POST[Msn]')") or die(mysql_error());

if (mysql_query) {
  header("location: /homepage/members/members.php");
exit;

}




?>
Avatar billede jaw Nybegynder
09. november 2004 - 19:43 #4
$sql_Email_check = mysql_query("SELECT Email FROM member WHERE Email='$Email'");
$sql_Brugernavn_check = mysql_query("SELECT Brugernavn FROM Member WHERE Brugernavn='$Brugernavn'");

prøv med:
$sql_Brugernavn_check = mysql_query("SELECT Brugernavn FROM Member WHERE Brugernavn='$Brugernavn'") or die(mysql_error());

Umiddelbart vil jeg tro, at det er fordi du i din ene query bruger "member" som tabel og i den anden "Member".
Avatar billede jaw Nybegynder
09. november 2004 - 19:44 #5
Ohhh, det havde du rettet... Havde jeg så bare ikke lige set, beklager...
Avatar billede Slettet bruger
09. november 2004 - 19:48 #6
og alle store og små bogstaver er som de skal være i queryen? dobbeltcheck lige.. :)
Avatar billede MarkA Praktikant
05. februar 2009 - 22:40 #7
lukker tråd
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