14. februar 2005 - 00:13Der er
7 kommentarer og 1 løsning
Database tjek inden oprettelse
Hej
Har prøvet dette spg før uden held, så nu giver jeg lidt flere points: Jeg har et lille oprette script. Problemet er at den lige skal tjekke databasen for at se om brugernavnet eksisterer så jeg ungår flere brugere med sammen brugernavn. Koden:
if($_POST["opret"] && $_POST["password"] == $_POST["password2"]) { $db->ExecSQL("INSERT INTO gipzone (brugernavn,password,brugertype)VALUES('".$_POST["brugernavn"]."','".$_POST["password"]."','bruger')"); echo "<center>Din bruger er nu oprettet!<br>Du kan logge ind <a href='login.php'>her</a></center>"; }
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Du skal lave en SELECT på brugernavnet først og tjekke om antallet af retunerede rækker er større end 0 (for så er der jo en bruger i forvejen). Hvis ikke det er tilfældet, kan du køre din INSERT INTO.
$tjek = $db->SendSQL("SELECT * FROM gipzone WHERE brugernavn='$_POST[brugernavn]' AND password='$_POST[password]'"); if (count($tjek)>0) { //Brugeren findes i forvejen } else { //Brugeren findes ikke }
Synes godt om
Slettet bruger
14. februar 2005 - 00:53#4
Den smarte metode er at sætte det relevante felt til ikke at må have dubletter i databasen.
$tjek = $db->SendSQL("SELECT * FROM gipzone WHERE brugernavn='$_POST[brugernavn]' AND password='$_POST[password]'"); if (@mysql_num_rows($tjek)>0) { //Brugeren findes i forvejen } else { //Brugeren findes ikke }
Jeg har gjort flg.: if($_POST["opret"] && $_POST["password"] == $_POST["password2"]) { $tjek = $db->SendSQL("SELECT * FROM gipzone WHERE brugernavn='$_POST[brugernavn]' AND password='$_POST[password]'"); if (count($tjek)>0) { echo "<center>Brugeren findes i forvejen! Prøv igen.</center>"; } else { //Brugeren findes ikke $db->ExecSQL("INSERT INTO gipzone (brugernavn,password,brugertype)VALUES('".$_POST["brugernavn"]."','".$_POST["password"]."','bruger')"); echo "<center>Din bruger er nu oprettet!<br>Du kan logge ind <a href='login.php'>her</a></center>";
} } else if($_POST["opret"] && $_POST["password"] !== $_POST["password2"]) { echo "<center>Password er ikke ens! Prøv igen.</center>"; }
Det virker også til en vis grad. Du kan ikke oprette den samme bruger med det samme pass. Men hvis du opretter en bruger med et samme brugernavn, men et andet pass så kan du godt! Hva ska ændres?
Jo, men det er værd at overveje sandbox's forslag med at lave et UNIQE INDEX på brugernavn feltet. Og slap nu lidt af med pointene ;O)
Synes godt om
Ny brugerNybegynder
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.