anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Umlaute und Leerzeichen im Charakternamen https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=2244 |
Seite 1 von 2 |
Autor: | vernisage [ Mi 15 Feb, 2006 12:07 ] |
Betreff des Beitrags: | Umlaute und Leerzeichen im Charakternamen |
Hallo , heute möchte ich nochmal meine Frage aufgreifen, die ich vor einigen Tagen schon mal stellte, jedoch bekam ich nicht wirklich hilfreiche Tipps. Meine Probleme stellen sich so dar: 1.) Spieler, die sich mit einem Charakternamen anmelden, die einen Umlaut (äöüß) enthalten, werden verstümmelt, der Umlaut entfällt und ich muss es per Hand zurechtrücken. Wie kann ich es permanent einstellen, dass solche Zeichen in Charakternamen zugelassen werden?? 2.) Wenn sich ein Spieler mit einem Charakternamen anmeldet, der aus zwei oder mehr Worten besteht (Bsp: Graf Zahl, Holt'Van...), kann man deren Biografie nicht öffnen, wenn man sie anklickt. In den Spieleinstellungen in der Grotte habe ich "Leerzeichen in Charakternamen" erlaubt. Entferne ich das Leer- oder Sonderzeichen, geht es. Was kann ich da ändern? In der DB? Bei Varchar sind bei mir 50 Zeichen zugelassen. Ich wäre sehr dankbar, wenn ich einen Tipp bekäme von Euch ;o) Vielen Dank sagt verni |
Autor: | Eliwood [ Mi 15 Feb, 2006 17:26 ] |
Betreff des Beitrags: | Re: Umlaute und Leerzeichen im Charakternamen |
vernisage hat geschrieben: Hallo ,
heute möchte ich nochmal meine Frage aufgreifen, die ich vor einigen Tagen schon mal stellte, jedoch bekam ich nicht wirklich hilfreiche Tipps. Meine Probleme stellen sich so dar: 1.) Spieler, die sich mit einem Charakternamen anmelden, die einen Umlaut (äöüß) enthalten, werden verstümmelt, der Umlaut entfällt und ich muss es per Hand zurechtrücken. Wie kann ich es permanent einstellen, dass solche Zeichen in Charakternamen zugelassen werden?? 2.) Wenn sich ein Spieler mit einem Charakternamen anmeldet, der aus zwei oder mehr Worten besteht (Bsp: Graf Zahl, Holt'Van...), kann man deren Biografie nicht öffnen, wenn man sie anklickt. In den Spieleinstellungen in der Grotte habe ich "Leerzeichen in Charakternamen" erlaubt. Entferne ich das Leer- oder Sonderzeichen, geht es. Was kann ich da ändern? In der DB? Bei Varchar sind bei mir 50 Zeichen zugelassen. Ich wäre sehr dankbar, wenn ich einen Tipp bekäme von Euch ;o) Vielen Dank sagt verni Zu 1) [php]$shortname = preg_replace("([^[:alpha:]_-])","",$HTTP_POST_VARS[name]);[/php] Ersetzt alles mit '', wenn es folgendes nicht ist: Buchstabe, Unterstrich, Bindestrich. [php]$shortname = preg_replace("([^[:alpha:] _-])","",$HTTP_POST_VARS[name]);[/php] Ersetzt alles mit '', wenn es folgendes nicht ist: Buchstabe, Unterstrich, Bindestrich, Leerschlag. Die ungetestete Lösung ist also, dass man das Erste Argument (übrigens RegExp genannt, wie folgt erweitert: ([^[:alpha:]_-äüö]) Bzw. ([^[:alpha:] _-äöu]) |
Autor: | vernisage [ Mi 15 Feb, 2006 18:53 ] |
Betreff des Beitrags: | |
Danke Eli für deine Antwort.... nur *räusper*... in welche Datei füge ich das ein? Und wo??? |
Autor: | Eliwood [ Mi 15 Feb, 2006 18:59 ] |
Betreff des Beitrags: | |
vernisage hat geschrieben: Danke Eli für deine Antwort....
nur *räusper*... in welche Datei füge ich das ein? Und wo??? Argh... create.php natürlich ^^"" |
Autor: | vernisage [ Mi 15 Feb, 2006 19:23 ] |
Betreff des Beitrags: | |
Super, funktioniert!!!! Tausend Dank an dich. Hast du vielleicht auch noch eine Idee, was mein 2.Problem lösen könnte?? Die Leerzeichen werden zwar angenommen, jedoch kommt man nicht in seine Biografie... |
Autor: | Eliwood [ Mi 15 Feb, 2006 19:27 ] |
Betreff des Beitrags: | |
vernisage hat geschrieben: Super, funktioniert!!!! Tausend Dank an dich.
Hast du vielleicht auch noch eine Idee, was mein 2.Problem lösen könnte?? Die Leerzeichen werden zwar angenommen, jedoch kommt man nicht in seine Biografie... Eigentlich müsse in der Funktino viewcommentary beim Link zur Bio login mit RawURLEncode bearbeitet werden... Kuck da mal nach ![]() |
Autor: | Kevz [ Mi 15 Feb, 2006 19:28 ] |
Betreff des Beitrags: | |
Guck dir auch gleich die "login.php" an!, denn diese wird auch durch "'" beinträchtigt. Soweit ich mich nicht täusche... ![]() |
Autor: | vernisage [ Mi 15 Feb, 2006 19:34 ] |
Betreff des Beitrags: | |
puh. Also um mal gleich auf Kevz zu kommen, ich hab in der login.php einige Male .URLEncode gefunden, weiß nun allerdings, ob du meinst, dass ich bei jedem den Punkt wegnehmen soll??? Und zu Eli -> zu meiner Schande, ich weiß nicht, was du meinst *rotanläuft* |
Autor: | Eliwood [ Mi 15 Feb, 2006 19:36 ] |
Betreff des Beitrags: | |
vernisage hat geschrieben: puh.
Also um mal gleich auf Kevz zu kommen, ich hab in der login.php einige Male .URLEncode gefunden, weiß nun allerdings, ob du meinst, dass ich bei jedem den Punkt wegnehmen soll??? Und zu Eli -> zu meiner Schande, ich weiß nicht, was du meinst *rotanläuft* Suche in der Funktion viewcommentary mal nach "bio.php", und poste alles, was du findest ![]() |
Autor: | vernisage [ Mi 15 Feb, 2006 19:45 ] |
Betreff des Beitrags: | |
Dann hoffe ich mal, dass es das richtige ist [php] $link = "bio.php?char=".rawurlencode($row[login]) . "&ret=".URLEncode($_SERVER['REQUEST_URI']); if (substr($ft,0,2)=="::") $ft = substr($ft,0,2); if (substr($ft,0,2)=="/X") $ft = substr($ft,0,2); else if (substr($ft,0,1)==":") $ft = substr($ft,0,1); [/php] |
Autor: | Eliwood [ Mi 15 Feb, 2006 19:48 ] |
Betreff des Beitrags: | |
vernisage hat geschrieben: Dann hoffe ich mal, dass es das richtige ist
[php] $link = "bio.php?char=".rawurlencode($row[login]) . "&ret=".URLEncode($_SERVER['REQUEST_URI']); if (substr($ft,0,2)=="::") $ft = substr($ft,0,2); if (substr($ft,0,2)=="/X") $ft = substr($ft,0,2); else if (substr($ft,0,1)==":") $ft = substr($ft,0,1); [/php] Jap, das ist es, und ich hab keine Ahnung, warum *das* Probleme macht... ô_Ò |
Autor: | vernisage [ Mi 15 Feb, 2006 19:56 ] |
Betreff des Beitrags: | |
Willst sagen, dass das Problem woanders liegt? Ich danke dir trotzdem, dass du mir so gut weiter geholfen hast, vielleicht kann mir ja Kevz noch unter die Arme greifen?? |
Autor: | anpera [ Mi 15 Feb, 2006 20:24 ] |
Betreff des Beitrags: | |
Möglicherweise in der bio.php.$this->bbcode_second_pass_code('', '//// Finde: ....FROM accounts WHERE login='{$_GET['char']}'"); //// Ersetze mit: ....FROM accounts WHERE login='".rawurldecode($_GET['char'])."'");') |
Autor: | vernisage [ Mi 15 Feb, 2006 20:31 ] |
Betreff des Beitrags: | |
Ich habe diesen Befehl gar nicht in der bio.php ![]() Edit, SORRY sorry sorry, hab ihn doch, er war nur so versteckt......*sich an den Kopf fasst* Der Austausch hat nur leider nichts ergeben, der Effekt ist noch genauso ![]() |
Autor: | anpera [ Mi 15 Feb, 2006 20:38 ] |
Betreff des Beitrags: | |
Wenn du mit der Maus über den Namen des Chars fährst, für den du die Bio haben willst, was steht da für ein Link in der Statuszeile des Browsers? Wenn du drauf klickst, was steht dann in der Adresszeile des Browsers? Und was erscheint als Ergebnis? Eine weiße Seite? Seite nicht gefunden? |
Autor: | vernisage [ Mi 15 Feb, 2006 20:44 ] |
Betreff des Beitrags: | |
Wenn ich mit der Mouse draufgeh, erscheint in der Statuszeile folgende Adresse: (UserName Dark Knight) http://logd.kaschmiga.de/bio.php?char=Dark%20Knight Wenn ich den Namen anklick, bin ich in der badnav http://logd.kaschmiga.de/badnav.php Ich bin noch genauso da, wo ich war, in der Kämpferliste (Ausgangsort) |
Autor: | anpera [ Mi 15 Feb, 2006 21:24 ] |
Betreff des Beitrags: | |
Ui, da bist du auf was gestoßen. Also entweder, du solltest die Leerzeichen in Namen wieder verbieten, oder du riskierst es, dass möglicherweise an anderen Stellen badnavs auftauchen, die bisher funktioniert haben. In der common.php in der Funktion addnav:[php]/// Finde: $nav.=templatereplace("navitem",array( "text"=>appoencode($text,$priv), "link"=>HTMLEntities($link.$extra), "accesskey"=>$keyrep, "popup"=>($pop==true ? "target='_blank' onClick=\"".popup($link.$extra)."; return false;\"" : ($newwin==true?"target='_blank'":"")) )); /// Ersetze es durch: $nav.=templatereplace("navitem",array( "text"=>appoencode($text,$priv), "link"=>$link.$extra, "accesskey"=>$keyrep, "popup"=>($pop==true ? "target='_blank' onClick=\"".popup($link.$extra)."; return false;\"" : ($newwin==true?"target='_blank'":"")) ));[/php]Ich denke, das behebt das Problem. Auf lange Sicht müsste das mal überarbeitet werden, dass man bei addnav() auch nicht mehr auf (raw)urlencode etc. achten muss. |
Autor: | Kevz [ Mi 15 Feb, 2006 21:32 ] |
Betreff des Beitrags: | |
Ich kann mich dies bezüglich gern mal melden ![]() Wann dies fertig ist kann ich nicht Garantieren, muss mir erstmal genau angucken und drüber denken ![]() |
Autor: | Kakerlake [ Mi 15 Feb, 2006 22:13 ] |
Betreff des Beitrags: | |
eigentlich muss doch nur in der addnav " " durch "%20" ersetzt werde, dann sollte alles sofort funzen obwohl: müsste ne neue kleine funktion geschrieben werden die " ","ä","ö","ü",",Ä","Ö","Ü" automatisch mit "%20","%auml","%ouml","%uuml","%Auml","%Ouml","%Uuml" ersetzt, somit sollte es kein problem mehr sein da sonderzeichen in der url-bar automatisch dekodiert werden und somit nur der addnav angeglichen werden müsste |
Autor: | Kevz [ Mi 15 Feb, 2006 22:17 ] |
Betreff des Beitrags: | |
Aber einmal ganze addnav umschreiben lohnt sich schon alle mal.. |
Seite 1 von 2 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |