pragmaMx Support Forum

Archive => veraltete bzw. unsupportete Systeme und Module => Alt Archive => PHPNuke 5.2-6.0 & VKP 5.5 => Thema gestartet von: Voigt am 12 Juni 2002, 20:49:40

Titel: Benutzernamen mit Sonderzeichen
Beitrag von: Voigt am 12 Juni 2002, 20:49:40
Hallo !

Vorerst, habe die Suche benutzt, dazu aber nichts gefunden  ;)

Ist es möglich im User-Account, den Benutzernamen auch mit Sonderzeichen (Leerzeichen)  zuzulassen ? Mit dem Admin-Account ist die ohne weiteres möglich.

THX
Voigt
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Andi am 12 Juni 2002, 20:58:12
Hi Voigt,

Ja das geht, schau mal in die index.php des YA-Moduls. In der Funktion userCheck() kommentiere die folgende Zeile aus:

#  if (strrpos($uname,' ') > 0) $stop = "<center>"._NICKNOSPACES."</center>";
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Voigt am 12 Juni 2002, 21:20:25
Hi Andi

Wenn Du mir jetzt noch verrätst wie das
"auskommentieren" vonstatten geht wäre ich dir sehr Dankbar  :)

Bin Anfänger :cry

Voigt
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Andi am 12 Juni 2002, 21:25:53
uuups :o

So wie ich es oben geschrieben habe.
Setze vor die Zeile ein #.
Damit kannst Du in php einzelne Zeilen auskommentieren  ;)
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Excalibur100 am 12 Juni 2002, 21:33:05
oder löschen ;)
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Andi am 12 Juni 2002, 21:34:53
@Excalibur100

 ;) ;)
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Excalibur100 am 12 Juni 2002, 21:44:55
@Andi :) ;)
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Voigt am 12 Juni 2002, 21:54:08
Hmm

Beide Vorschläge versucht, bekomme aber immer noch die Fehlermeldung "Ungültiger Benutzername"

Jetzt ist guter Rat teuer ;)
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Excalibur100 am 12 Juni 2002, 21:58:34
Da ist noch was in Zeile 60:

    if ((!$uname) || ($uname=="") || (ereg("[^a-zA-Z0-9_-]",$uname))) $stop = "<center>"._ERRORINVNICK."</center><br>";

vielleicht erweiterst du hier einfach um die Sonderzeichen, oder Andi?
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Andi am 12 Juni 2002, 22:16:46
Ja, das müsste es sein.

Jetzt fragt mich aber bitte nicht, wie man den ereg-String erweitert :puzz.
Das blicke ich auch noch nicht ganz....
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Excalibur100 am 12 Juni 2002, 22:18:19
lol, ich leider auch nicht.
Ich dachte du wüßtest es  hehehehe

;)  :)  ;)  :)
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Voigt am 12 Juni 2002, 22:57:26
Trotzdem Danke für Eure Mühe :)
Vielleicht findet sich noch jemand der die Sache enträtseln kann.

Voigt
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Andi am 13 Juni 2002, 09:14:30
Hi Voigt,

das ereg-Thema ist ganz schön komplex und nicht leicht zu verstehen.
Hier handelt es sich aber um ein recht einfaches.....

Versuche mal, was passiert, wenn Du in den String  ..... ("[^a-zA-Z0-9_-]",$ ..., vor der schliessenden eckigen Klammer ] ein Leerzeichen setzt.
So wie ich das kapiert habe, sollte es dannn gehen :puzz
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Joschau am 13 Juni 2002, 11:09:19
Kurzanmerkung zum Thema ;)

ereg verwendet sogenannte reguläre Ausdrücke zur Überprüfung eines Strings. Dabei prüft ereg anhand eines Suchmusters, ob die in dem Suchmuster benannten Zeichen in einem String vorkommen.

ereg (Suchmuster, String)

Die Definition der regulären Ausdrücke zu erklären, würde etwas viel Aufwand erfordern... ;) , aber wen es in Grundzügen interessiert, kann mal folgenden Link nachlesen:

http://www.devmag.net/webprog/regulaere_ausdruecke.htm

Daraus lernen wir folgendes ;) :

ereg("[^a-zA-Z0-9_-]",$uname)

Der String uname darf nicht die Zeichen Kleinbuchstaben von a-z, Großbuchstaben von A-Z und Ziffern von 0-9, sowie den Unterstrich und den Bindestrich enthalten.

Bevor gleich Nachfragen kommen ;)

FB hat bei der Programmierung um die Ecke gedacht...er wollte ein Stop-Signal, wenn ein anderes als die in dem Suchmuster vorkommenden Zeichen in dem String uname enthalten ist. Also musste er die Zeichen, die er drin haben wollte, quasi als verboten definieren, um von ereg ein TRUE zu bekommen, wenn ein anderes Zeichen in dem String drin wäre. Alles klar ??? :D

Wenn Du nun ein Leerzeichen vor die schließende eckige Klammer machst, darf der String auch (k)ein Leerzeichen enthalten.

Wenn der String auch andere Zeichen (nicht) enthalten sollen darf (oder sollen enthalten dürfen oder enhalten dürfen soll), müssen diese ebenfalls dezidiert in das Suchmuster aufgenommen werden, also zwischen die eckigen Klammern gesetzt werden...wobei die Zeichen bitte immer hinter dem einführenden ^ eingefügt werden müssen....

[Bearbeitet am: 13/6/2002 von Joschau]
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Voigt am 13 Juni 2002, 15:20:23
@ Joschau
Toll erklärt, aber ich hab' nix kapiert :P
Was heisst das jetzt für mich?  :o

@ Andi
Hab das Leerzeichen gesetzt. Der Benutzername wird nun auch mit Leerzeichen angenommen, dennoch geht es nicht ohne Fehlermeldung ab.

Warning: REG_ERANGE in modules/Your_Account/index.php on line 111

THX
Voigt[Bearbeitet am: 13/6/2002 von Voigt]
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Joschau am 14 Juni 2002, 11:43:56
Machen wir es doch mal andersrum...;)

Welche Sonderzeichen willst Du denn zulassen im Benutzernamen?
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Voigt am 14 Juni 2002, 14:20:38
ZitatMachen wir es doch mal andersrum...;)

Welche Sonderzeichen willst Du denn zulassen im Benutzernamen?

LEERZEICHEN, mehr will ich doch gar nicht ;)
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Joschau am 14 Juni 2002, 14:59:35
Also bei mir funktioniert es, wenn ich in das Suchmuster ein Leerzeichen einfüge:

(ereg("[^ a-zA-Z0-9_-]",$uname))


und die Zeile, die Andi schon gennant hat, auskommentiere (Z 113):

//    if (strrpos($uname,' ') > 0) $stop = "<center>"._NICKNOSPACES."</center>";


Dann bekomme ich keine Fehlermeldungen mehr.
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Voigt am 14 Juni 2002, 15:13:01
 :D :D

Die Fehlermeldung ist nun wech !
Das Leerzeichen steht jetzt am Anfang des Suchmusters, steht das Leerzeichen am Ende, kommt ne Fehlermeldung :quest
Ist ja jetzt auch egal, funktioniert nun einwandfrei :D

Nochmals DANKE für die Mühe die ihr euch gemacht habt !
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Andi am 14 Juni 2002, 15:16:47
Klasse!!

Jetzt hab ich auch wieder was dazukapiert

thx @all :D
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: shinz am 07 August 2002, 15:40:48
Um dann noch einen draufzusetzen...

Beim dem Model WebChat macht dieses Leerzeichen kleinere Probleme. D.h. man loggt sich ein, dann startet man WebChat und dann bekommt man in der Onlinelist einen Sascha Hinz und einen "geclonten" Sascha_Hinz angezeigt. Mit der Funktionstüchtigkeit der anderen Module oder mit "private messages" konnte ich bisher keine negativen Erfahrungen machen. Der WebChat war auch das einzige Modul wo es aufgefallen ist.

Stellt sich mir und vielleicht auch noch anderen die Frage, ob dieses zusätzliche Leerzeichen irgendwo anders dem System Schaden anrichten kann. Oder warum der Erfinder von phpnuke nicht gleich das Leerzeichen eingebaut hat um den Komfort zu erhöhen. Vielleicht was mit der Datenbank zu tun?

Es mag sein, dass ich irgendwo was nicht gelesen oder nicht richtig gesucht habe, aber über jegliche Bemerkung an dieser Stelle wäre ich sehr dankbar. Auf jeden Fall weiß ich nun nicht alleine mit der Leerzeichen-Problematik zu sein.

MfG

Sascha Hinz
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: Andi am 07 August 2002, 18:20:20
 
Zitatdieses zusätzliche Leerzeichen irgendwo anders dem System Schaden anrichten kann. Oder warum der Erfinder von phpnuke nicht gleich das Leerzeichen eingebaut hat
Hmm, wüsste nicht, was ein leerzeichen für Schaden in einer SQL-Datenbank anrichten sollte. StelleDireineDatenbankganzohneleerzeichenvor,daswäredochwohluntragbar ;)

Bleibt die Frage nach dem Warum...
Für mich ist das eine faule Brücke, um Fehler, die durch unsauberen PHP-Code entstehen könnten zu vermeiden. Der Code von phpNuke ist ein Musterbeispiel für chaotischen php-Code. Wahrscheinlich (ich habe noch nicht reingeschaut) sieht es im Chatmodul genauso aus....


[Editiert am 7.8.2002 von SiteAdmin Andi]
Titel: Re: Benutzernamen mit Sonderzeichen
Beitrag von: am 07 August 2002, 19:59:54
mhhh, nun ja das Chatmodul trägt auch Eure Handschrift. Ich war allerdings froh das es überhaupt irgendwie klappt... deswegen bloß keine Umstände machen.

PHP-NUKE: WebChat phpNuke 5.5                    
## ================================================                    
##  Copyright Å 2002 DarkBoy (info@maax-design.de)                ;)