Gå til innhold

Sjekk om brukern finnes


Anbefalte innlegg

Sitter her å knoter på et script som registrer brukere inn i en mysql database, og slitter litt med å sjekke om brukernavnet allerede er i bruk.

 

Dette er det jeg har kommet frem til:

function finnesbruker ($brukernavn)
{

mysql_query(" SELECT * FROM brukere WHERE brukernavn='$brukernavn' ");

if (mysql_affected_rows() != -1){
	return FALSE;
} else {
	return TRUE;
}

}

og

elseif (finnesbruker($brukernavn)) {
echo 'Brukernavnet er allrede i bruk...';


}

Den slipper igjennom registreringen om brukernavnet ikke finnes fra før av, men om brukernavnet allerede er registrert blir det ikke fanget opp her, og det kommer i stedet en feilmelding fra mysql servern.

 

Vet ikke helt hvor godt jeg har forklart meg nå, spørr gjerne!

Lenke til kommentar
Videoannonse
Annonse
Hvorfor ikke bare sette kolonnen som holder rede på selve brukernavnet i mysql-tabellen din til å være UNIQUE? I såfall, får du tilbake en feilmelding hvis noen prøver å opprette et brukernavn som allerede eksisterer..

Man får en feilmelding, ja, men den meldingen er ikke direkte vakker. Derfor er det bedre å bruke en custom funksjon til dette, så kan man printe ut akkurat det man ønsker.

Lenke til kommentar
Man får en feilmelding, ja, men den meldingen er ikke direkte vakker. Derfor er det bedre å bruke en custom funksjon til dette, så kan man printe ut akkurat det man ønsker.

Det er ikke nødvendig å skrive ut mysql_error(). Hvis spørringen mot databasen resulterer i en feilmelding - kan en jo skrive ut hva man måtte ønske til brukeren?

Selvfølgelig forstår jeg problemstillingen din også dersom man skal opprette en brukerdatabase med mange forskjellige brukere - og på forhånd ønsker å sjekke om brukernavnet er ledig før selve profilen til brukeren opprettes, men hvis dette ikke er nødvendig - er det letteste oftest det beste (mener jeg hvertfall).

Lenke til kommentar

Hvorfor ikke bruke en aggregatfunksjon, feks count?

 

if(finnes(6)){
print("Finnes fra før");
}else{
print("Finnes ikke fra før");
}
function finnes($id){
$sql = sprintf("SELECT count(*) as antall FROM museum_item WHERE item_id = %d", mysql_real_escape_string($id));
$sjekk = mysql_fetch_array(mysql_query($sql));
return $sjekk['antall'] != 0;
}

Jeg har museum_items i min tabell, dette byttes selvfølgelig ut til brukernavn eller whatever. Denne funker hos meg.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...