Seite 1 von 2

Benutzernamen - Regeln für die Registrierung

Verfasst: 23.05.2007 12:45
von Feuerwolf
Ich möchte gerne Folgende Regel einfügen, Ein jeder neu registrierter Benutzername muss zwischen dem zweiten und dem zweitletzten Zeichen min ein Leerzeichen enthalten. Um eine Illusion von Vor- und Nachnamen zu erschaffen. Wo muss ich wie den code dafür anpassen

*edit*

folgende Lösung hat funktioniert:

Code: Alles auswählen

 	if (substr_count (substr ($username, 2, (Strlen ($username) - 4)), ' ') <= 0)
 	{
 		return 'INVALID_CHARS';
 	}

Verfasst: 24.05.2007 21:11
von Feuerwolf
Kann mir jemand sagen, wo die Benutzernamen auf erlaubte Zeichen geprüft werden?

Verfasst: 24.05.2007 21:30
von Emanuelle_1982
ACP - Allgemein - Registrierung -
Erlaubte Zeichen in Benutzernamen:
Legt fest, welche Zeichen in Benutzernamen genutzt werden können. Füllzeichen sind: Leerzeichen, -, +, _, [ und ].

Verfasst: 24.05.2007 21:39
von Feuerwolf
ich suche den Bereich im php in dem die Benutzernamen geprüft werden, und ich dann eine neue bedingung hinzufügen kann.
->
Feuerwolf hat geschrieben:...Benutzername muss zwischen dem zweiten und dem zweitletzten Zeichen min ein Leerzeichen enthalten

Verfasst: 24.05.2007 21:47
von Emanuelle_1982
includes/functions_user ->
function validate_username($username, $allowed_username = false)

hilft dir das schon weiter?

Verfasst: 24.05.2007 22:59
von Feuerwolf
Hat mir weitergeholfen
Hab folgenden code erstellt:
">" bezeichnet meinen Code

Code: Alles auswählen

function validate_string($string, $optional = false, $min = 0, $max = 0)
{
	if (empty($string) && $optional)
	{
		return false;
	}

	if ($min && utf8_strlen(htmlspecialchars_decode($string)) < $min)
	{
		return 'TOO_SHORT';
	}
	else if ($max && utf8_strlen(htmlspecialchars_decode($string)) > $max)
	{
		return 'TOO_LONG';
	}
>  else if (strpos(((substr($username,2,(strlen($username))))-4),' ')<=0);
>  {
>     return 'INVALID_CHARS';
>  }

	return false;
}
leider erhalte ich als Resultat nur eine weisse Seite.

Verfasst: 24.05.2007 23:20
von Emanuelle_1982
also... am Rande: du solltest dir mal den Coding Guideline auf deutsch http://olympuswiki.naderman.de/Deutsch: ... ode_Layout -> Abschnitt: Benutzen Sie Leerzeichen zwischen den Ausdrücken/Tokens

soo... und 2 Fehler sind mir aufgefallen
  1. eine if Bedingung endet nicht mit ;
    Feuerwolf hat geschrieben:else if (strpos(((substr($username,2,(strlen($username))))-4),' ')<=0);
  2. strpos($string, $suchstring, offset) -> bei dir ist der Suchstring -4, und das offset:
also... teile das mal in 2 bis 3 Zeilen auf, und lasse mal ein paar Klammerpaare weg - wird übersichtlicher :wink:

und sorry wenn ich die Lösung jetzt nicht poste - danach sollte es gehen
*nur nen test mit mini php Datei gemacht hat*

Liebe Grüße
Emma

Verfasst: 25.05.2007 09:01
von Feuerwolf
Also das mit den zwei bis 3 Zeilen, weis ich nicht, wie ich das am besten realisiere. Aber ich denke, dass ich zumindest das durcheinander etwas lüften konnte. Ich verstehe was ich da geschrieben habe mittlerweile schon besser.

Code: Alles auswählen

	else if (substr_count (substr ($username, 2, (Strlen ($username) - 4)), ' ') <= 0)
	{
		return 'INVALID_CHARS';
	}
aber es funktioniert noch immer nicht.

Verfasst: 25.05.2007 09:24
von Emanuelle_1982

Code: Alles auswählen

(substr_count(
	substr(
		$username,				// nehme USERNAMEN
		2, 						// usERNAME
		(Strlen($username) - 4) // usERNAme strlen ist 8, -4 = 4, also ab ER 4 Zeichen ; -3 ??
		),						// also wird ERNA durchsucht
	' ')						// suche nach einem Leerzeichen
<= 0)							// es dürfen nur weniger oder genau 0 sein? ; > 0 ?

Verfasst: 25.05.2007 10:55
von Feuerwolf
Emanuelle_1982 hat geschrieben:

Code: Alles auswählen

...
	' ')						// suche nach einem Leerzeichen
<= 0)							// es dürfen nur weniger oder genau 0 sein? ; > 0 ?
Wenn kein Leerzeichen enthalten ist soll er den INVALID_CHARS Fehler ausgeben