Ja, men vidst ikke så simpelt igen. Lav to forespørgsler. Den første søger efter brugernavnet i databasen og den næste gemmer det indtastede, hvis det ikke blev fundet første gang. Systemet er ikke skudsikkert, da der i pricippet kunne komme en bruger mellem de to forespørgsler og tage navnet :p Risikoen er dog ufatteligt minimal!
Hvis du ikke kan leve med den risiko, så kan du bruge transaktioner, men det er lidt meget at gøre ud af det.
Her er et eksempel på hvordan dit script kunne se ud:
-- gembruger.php if(!(SELECT brugernavn FROM brugere WHERE brugernavn = '$nybrugers_navn')) INSERT INTO brugernavn ...
Det er IKKE en ready-to-go kode, men blot et billede af hvordan du kan gøre det!
begge værdier er sat til unique, så man kan ikke oprette med den samme brugernavn eller adgangskode... Men hvordan fortæller jeg brugeren at det ikke lykkedes at oprette da brugernavnet er taget?
Betyder følgende, "begge værdier er sat til unique, så man kan ikke oprette med den samme brugernavn eller adgangskode", at det brugeren "palle" og brugeren "ole" ikke have samme adganskode?
Dit problem kan løses således:
if(mysql_query("INSERT INTO medlemmer (brugernavn, adgangskode) VALUES('$brugernavn', '$adgangskode')")) print "Du er nu oprettet"; else print "Dit brugernavn er optaget! Vælg et nyt.";
if ($_POST['reg']) { $brugernavn = $_POST['brugernavn']; $adgangskode = $_POST['adgangskode']; if(mysql_query("INSERT INTO medlemmer (brugernavn, adgangskode) VALUES('$brugernavn', '$adgangskode')")) print "Alt gik fint!"; else print "Det navn er optaget, vælg et andet!"; } ?>
if ($_POST['reg']) { $brugernavn = addslashes($_POST['brugernavn']); $adgangskode = addslashes($_POST['adgangskode']); if(mysql_query("INSERT INTO medlemmer (brugernavn, adgangskode) VALUES('$brugernavn', MD5('$adgangskode'))")) print "Alt gik fint!"; else print "Det navn er optaget, vælg et andet!"; } ?>
<? $medlemsliste = mysql_query("SELECT brugernavn, adgangskode FROM medlemmer ORDER BY brugernavn DESC"); while($data = mysql_fetch_row($medlemsliste)) { echo "$data[0]<br>"; echo "$data[1]<br><hr>"; } ?>
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.