webmaster resource
+ Webmaster Forum von Webmaster-Resource.de » Webcoding » PHP (Moderatoren: Christian Felken, » тнє $υι¢ι∂є « ™)
|-+ Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen
Username:
Password:

Seiten: [1] 2
Topic Tools  
Read 09. Januar 2008, 15:54:50 #0
maxwell

Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

Hallo Forum,

ich versuche mich gerade an einem Registrierungprozess. Dies ist kein sonderlich großes Problem.
Das Problem besteht eher darin, sobald der eingegebene Benutzername bereits vergeben ist sollen
alternative Benutzernamen ausgegeben werden. Wie realisiere ich das? Hat jemand vllt. einen Link der
Licht in die Sache bringt? Wie muss ich da vorgehen? Gibt es Risiken?

Vielen, vielen Dank vorab!
Grüße Max
Offline  
Read 09. Januar 2008, 16:27:16 #1
Zeus

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

also als erster würd ich alle werte per $_POST erstmal entgegenehmen, dann würd ich versuchen für den namen also nennen wirs mal exemplarisch "test", einen query zu erstellen, als

Code:
$x="SELECT * FROM `xxx` WHERE username='test'";
$xx=mysql_query($x);
$xxx=mysql_fetch_object($xx);

danach würd ich überprüfen ob es ein resultat giebt, denn nur wenn der nutzer berreits existiert kann dir der sql ein ergebniss anzeigen

also

Code:
if($xxx){
echo "Dieser Benutzer existiert berrreits ... ";
}
else{
include ("reg.php");
}

so ... dass is doch garnicht so schwär :-D


Gott ist Tod (Friedrich Nietzsche)
Offline  
Read 10. Januar 2008, 10:07:35 #2
maxwell

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

Hallo Zeus,

erstmal Danke für Deine Hilfe. Das prüfen der Benutzer ist soweit völlig klar und auch umgesetzt. Die Frage ist doch wie ich, sofern der Benutzername (xxx) bereits vorhanden ist, dem Benutzer alternative Benutzernamen zeigen kann.

z.B. Max -> dieser Benutzer ist bereits vorhanden! wie wäre es mit denen: Max1, Max17 usw.
Wie muss ich da rangehen, beziehungsweise wie prüfe ich alternative, noch freie Benutzernamen. Muss ich diese selbst in einem Algorythmus bilden und dann einzeln auf die DB abprüfen?

Viele Grüße
Max

Offline  
Read 10. Januar 2008, 13:00:07 #3
» тнє $υι¢ι∂є « ™

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernam

Hallo

Code:
$username = "test";
function user_exists($username)
{
global $mysql_sock;
$sql = "SELECT * FROM `...` WHERE username='".addslashes($username)."';";
$r = mysql_query($sql,$mysql_sock);
$r = mysql_fetch_object($r);
$r = mysql_num_rows($r);
if($r) { return true; } else { return false; }
}
$fp=true;
while($fp==false)
{
$username=$username.rand(0,9999);
$fp = user_exists($username);
}
echo $username;



sollte so gehen ... NICHT GETESTET
« Letzte Änderung: 10. Januar 2008, 13:02:13 von » тнє $υι¢ι∂є « »

Offline  
Read 10. Januar 2008, 16:42:05 #4
Zeus

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

hi,

das dürfte problemlos gehn, nur auf die weise bietest du ja "nur" eine alternative ... ich nehme an er will mehrerere ...

also noch ne kleine for schleife dazu die erst, sobal sie mit 5 ergebnissel gefüttert wurde true zurück liefert ...

desweiteren kannes sein das bei "beliebten" namen zb. brat pitt, yoda ... etc was auch immer die user deine seite für ne orientierung haben, die abfrage lang dauert weil viele usernames schon blockiert sind ..., ich weis jetz nicht ob es die performance verbessert, es is nur mal ne idee... einfach ein array mit allen namen füttern und dann dieses als vergleich nehmen, das entlasted den sql server aber aufjedenfall ...

mfg


Gott ist Tod (Friedrich Nietzsche)
Offline  
Read 13. Januar 2008, 19:11:38 #5
maxwell

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

Hallo тнє $υι¢ι∂є & Zeus,

ich habe mir Gedanken gemacht. Deine Idee das Ganze in ein Array einzulesen ist gar nicht mal schlecht.
Folgendes Resultat:
Code:

function BLD__ARR($USR){
CN();
$RES = mysql_db_query("CRM","SELECT ... FROM  .... WHERE  .... LIKE '".MeineVar."%';");
return mysql_fetch_array($RES, MYSQL_NUM);
}
function IN__ARRY($needle,$haystack){foreach($haystack as $item){if (strtolower($needle)==strtolower($item))return -1;}return 0;}
function CK__ARR($USR,$RES_ARR){if(empty($RES_ARR)){return 0;}else{return (IN__ARRY($USR,$RES_ARR)) ? -1 : 0;};}
function BLD__USR($USR){$USR = $USR.Rand(0,999); return $USR;}

function BLD__USR__PARAM($USR,$Y){
if(CK__ARR($USR,$Y)!=0){
echo 'Benutzername ist bereits vergeben!<br>
      Alternative Benutzernamen:<br>';
for ($x=0;$x<=2;$x++){
$NUSR = BLD__USR($USR);
for ($i=0;$i<count($Y);$i++){if(CK__ARR($NUSR,$Y)!=0){$NUSR = BLD__USR($USR);$i=0;}}
echo '<input type=radio id=r name=r1><label for=r1>'.$NUSR.'</label><br>';
}
}else{echo 'ok';}
}

BLD__USR__PARAM('MeineVar1',BLD__ARR('MeineVar2'));


Was haltet Ihr davon? Habt Ihr sicherheitsbedenken?
Viele Grüße und einen schönen Sonntag!
Max
Offline  
Read 13. Januar 2008, 19:14:29 #6
» тнє $υι¢ι∂є « ™

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernam

sicherheitsbedenken nein, aber es ist extrem CPU lastig (erst in ein array packen, und dann noch das array jedes element durchlaufen lassen)

bei "größeren" projekten würde ich mit Cache arbeiten!


danke, auch dir noch einen schönen sonntag (lieg mit 40°c Fieber im Bett)


Offline  
Read 13. Januar 2008, 19:19:41 #7
maxwell

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

Hallo тнє $υι¢ι∂є ,

erstmal gute Besserung.
Zitat

bei "größeren" projekten würde ich mit Cache arbeiten!


Wie meinst Du das genau? Kannst Du das näher erklären?
Viele Grüße
Max
Offline  
Read 13. Januar 2008, 19:22:00 #8
Zeus

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

du armer ...

40 grad fieber is nich schön ... ich sitz hier bei 40 grad raumtemperatur und wart nurnoch auf denn aufguss :-D

mfg und gute besserung


Gott ist Tod (Friedrich Nietzsche)
Offline  
Read 13. Januar 2008, 19:33:19 #9
» тнє $υι¢ι∂є « ™

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernam

(19:20:38) Daniel R.:
Code:
$m=mysql_query("... WHERE user_name LIKE '%user' ...");
(19:21:08) Daniel R.: dann habe ich ein array mit den Usernamen die Ähnlich sind
(19:21:24) Daniel R.: und kann mit PHP das kanze ohne viel CPU last bearbeiten
(19:22:00) Daniel R.:
Code:
$m=mysql_query("... WHERE user_name LIKE 'user%' ... ");


Offline  
Read 13. Januar 2008, 19:38:36 #10
maxwell

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

Oh oh ...  Grinsend Huch
Grüße Max
Offline  
Read 13. Januar 2008, 19:43:47 #11
» тнє $υι¢ι∂є « ™

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernam

das ist jetzt NICHT meine methode mit Cache! wäre zu umständlich zu erklären...


Offline  
Read 14. Januar 2008, 10:08:36 #12
maxwell

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

Moin Moin,

hast Du vielleicht ein paar hilfreiche Links?
Möchte mich dann gerne in die Thematik einarbeiten. Sollten Fragen auftreten muss ich Dich wohl damit belasten.
Du hast mir ja schließlich den Floh ins Ohr gesetzt!
 Zwinkernd

Gute Besserung...
Grüße
Max
Offline  
Read 14. Januar 2008, 10:40:52 #13
maxwell

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernamen

Hallo nochmals,

i. etwa?
http://www.samscripts.com/scripts/morecache
Grüße
Max
Offline  
Read 14. Januar 2008, 12:11:14 #14
» тнє $υι¢ι∂є « ™

Re: Benutzername bereits vorhanden -> Zeige alternative (noch freie) Benutzernam

Hallo nochmals,

i. etwa?
http://www.samscripts.com/scripts/morecache
Grüße
Max

nein!

per cron alle 2/3 stunden per PHP die ganzen user in eine datei schreiben, und beim login prüfen ob die schon vergeben sind...


Offline  
Seiten: [1] 2
Gehe zu: