Hej jeg søger en måde så man ikke kan oprette to bruger med samme brugernavn. Her er mit opret system:
<script language="JavaScript"> function formCheck() { if (document.post.navn.value == "") { alert("Du skal skrive dit brugernavn!"); document.post.navn.focus(); return false } if (document.post.password.value == "") { alert("Du skal skrive et password!"); document.post.password.focus(); return false; } } </script><br> <form method="post" action="opret.php" name="post" onsubmit="return formCheck()"> Brugernavn:<input name="navn" type="text" size="15"><br> Password:<input type="password" name="password" size="15"><br> E-mail:<input type="text" name="email" size="15"><br> <select name="køn"> <option value="mand">Dreng/Mand</option> <option value="dame">Pige/Dame</option> </select><br>
<p> <input type="submit" name="send" value="Bliv medlem"> <input type="reset" value="Slet alt"> </form> Hvis du ikke skriver din email adresse kan du ikke få tilsendt dit password!<br><br> <? if($send){ include ("db.php"); $query = mysql_query("INSERT `3dchat_users` SET(`brugernavn`, `password`, `email`, `køn`) VALUES ('$navn', '$password', '$email', '$køn')") or die (mysql_error()); echo "Du er nu oprettet<br><a href=\"login.php\">Log ind</a>"; } ?>
ups, har fået for vane at fjerne hakket for at modtage e-mail, så derfor har jeg ikke set at der er kommet nye indlæg, kigger der med det samme.
hvis du prøver at oprette et brugernavn, der allerede eksisterer, vil MySQL returnere en fejl, du kan evt. lave en søgning i databasen først, inden du indsætter nyt brugernavn, som så fortæller at der allerede er registreret en bruger med det navn, og hvis ikke der er noget registreret, så kan du køre din insert-query
Du kan fx lave en simpel søgning vha. mysql_num_rows, som tæller antallet af de navne, som din bruger nu prøver at oprette sig under. Hvis der ikke er nogen brugere med det pågældende brugernavn, hvilket jo er godt, så giver man lov til at oprette brugeren.
Eksempel:
Udråbstegnet i if-sætningen gør, at hvis der returneres false, hvilket der gør hvis der ingen brugere findes, så udføres indsætningen af den nye bruger i databasen :)
if (!mysql_num_rows((SELECT * FROM 3dchat_users WHERE brugernavn='$navn'") {
$query = mysql_query("INSERT `3dchat_users` SET(`brugernavn`, `password`, `email`, `køn`) VALUES ('$navn', '$password', '$email', '$køn')") or die (mysql_error());
der kommer denne fejl: Parse error: parse error in /home/web/gb1184/sites/opret.php on line 38
dettet line 38: ?> *loool* hvorfor det hehe... :D
dettet er min kode...
<? if($send){ include ("db.php"); if (!mysql_num_rows("SELECT * FROM users WHERE brugernavn='$navn'")) { $query = mysql_query("INSERT `users` SET(`brugernavn`, `password`, `email`, `dir`) VALUES ('$navn', '$password', '$email', '$dir')") or die (mysql_error()); echo "Du er nu oprettet<br><a href=\"?side=login&titel=Hjemmeside Login\">Log ind</a>"; } ?>
det er fordi du mangler et } til allersidst til at slutte din "if($send){" :)
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.