Ska skapa en funktion för att kontrollera om angivna användarnamnet är i bruk. Är den det så skall systemet erbjuda x antal alternativa användarnamn.
Systemet genererar x antal alternativ som alla på nåt sätt på bästa möjliga sätt motsvarar det användarnamn som användaren skrev (använder även användarens för- och efternamn för genereringen). Efter det skall den genererade listan köras mot databasen och tanken är att bara de av de genererade, som inte fins i databasen, skall erbjudas åt användaren.
Jag har hittills kommit fram till två lösningar:
a) jag testar varje namn individuellt mot databasen. Har jag x alternativ så blir det x antal frågor
b) jag lagrar alla alternativ i en temporär tabell och utifrån det så sparar jag endast de namn som inte finns i egentliga databasen (här så kör jag eventuellt med en temporär tabell om det lönar sig)
Finns det andra och bättre alternativ? Är jag helt ute och cyklar?
Kör MySql 5.x men det ska fungera med MySql 4.1.x.
Det första alternativet borde fungera. Detta är ju bara en engångsgrej.
Har du personens för och efternamn och eventuellt ort bör du kunna ge ett par alternativ.
Börja med 3 öka till 5 osv om det skulle behövas.
Du har ju tid mellan varje val om man så vill. dvs .Godkänn eller förkasta.
SELECT r.username
FROM (
SELECT 'testnamn1' AS username
UNION SELECT 'testnamn2'
UNION SELECT 'testnamn3' ) r
WHERE username NOT
IN (
SELECT username
FROM users )
Det är faktiskt rätt vettigt med det där med användarnamn och att få lite förslag. Jag tycker däremot att det bästa är att kunna använda sin epostaddress till att logga in. Den finns det garanterat bara en av i systemet i alla fall. Det beror ju lite på vem applikationen riktar sig vissa målgrupper tycker det är jättehäftigt med massa kyliga smeknamn och logins.
Bra sak det där med att skapa lite alternativ iaf... om man nu bestämt sig för att ha användarnamn som login :)
Finns det någon säkerhets aspekt på det där med att ha epost som användarnamn?
Jag själv gillar inte att logga in med e-post som användarnamn. T ex på publika datorer så lagrar man inte sina login-data och då får man skriva för mycket.
Bra jme. Det är förutsättningarna som kanske skall lyftas fram innan man kan ge bra råd.
Om det är enhandfull eller hubdratusen användare har också betydelse. Liksom hur ofta man kan tänka sig att logga in.