Avatar billede LukasFtw Nybegynder
04. marts 2012 - 16:40 Der er 3 kommentarer

Tjek om username allerede eksisterer i databasen

Jeg er igang med at lave en form, hvor man kan oprette en account.
Jeg vil gerne have at den tjekker om usernamet ellerede er taget, og hvis det er, så skal den ikke oprette en ny med samme navn.

Her er et udklip af min php kode.

<?php if (isset ($_POST['Submit']))
    {
        $sql =("SELECT name FROM 'accounts' LIMIT 1");
        if(mysql_num_rows($sql)){
        echo "Already exists.";
        }
        else {
            $name = $_POST['name' ];
            $password = $_POST['password' ];
           
            $query = "INSERT INTO accounts (name, password) VALUES('$name', '$password')" ;
            mysql_query ($query );//kører forespørgsel
            mysql_close ();
            header ("location:confirm.php" );
        }
    }
    ?>
Avatar billede xfox Nybegynder
04. marts 2012 - 19:58 #1
Hvor fejler den?
Avatar billede Slettet bruger
04. marts 2012 - 20:17 #2
Eller er det fordi du vil have input til at lave det bedre?

Hvis du vil være sikker på at du ikke får oprettet to brugere med samme brugernavn (f.eks. pga fejl i din kode), kan du gøre 'name' unique.

Da du ikke bruger prepared statements, er din kode åben for sql injections. Se evt. denne guide: http://www.eksperten.dk/guide/1480

Og du gemmer passwords i plaintext i databasen, så hvis en hacker får adgang til dem, får du nogle sure brugere på nakken. Lav f.eks. en hashkode af kodeordet sammen med en tilfældig genereret tekst streng, hvor du gemmer både denne tekst streng og kodeordet i databasen. Når du skal validere et kodeord, laver du samme operation og tjekker om hashkoden er den samme som den du har gemt.
Avatar billede arne_v Ekspert
04. marts 2012 - 23:15 #3
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
Computerworld tilbyder specialiserede kurser i database-management

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