ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » User namen mit Umlaut

Geschlossen
  1. #1
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    Hallo ich bräuchte mal wieder Hilfe

    Es geht darum das sich User mit umlauten (ö,ä,ü) im namen nicht Registrieren können. Es kommt immer dieser Text

    Für den Nickname gelten folgende Regeln: min. 3 Zeichen, max. 15 Zeichen. Folgende Zeichen sind erlaubt: []+-*=.| ausserdem Leerzeichen, alle Groß- und Kleinbuchstaben und alle Zahlen.

    Auch wenn ich den User mit (ö,ä,ü ) im Namen Anlege kann man sich nicht Anmelden man wird immer zur Registration weiter geleitet.

    Was kann ich tun das es geht und welche Dateien muss ich ändern und was muss ich ändern ?


    verwendete ilch Version: 1.1 P

    betroffene Homepage: www.entspannte-zocker.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    "Schuld" daran hat die function escape_nickname() in der Datei include/includes/func/escape.php.
    Da ich mich mit regulären Ausdrücken aber leider nicht auskenne,
    kannst Du entweder selber mal ein Wenig rumprobieren oder auf konkretere Hilfe warten.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    Danke Outi ich versuche es mal , aber Hilfe wäre schon nicht schlecht...

    ich poste mal den Original Code....
    <?php 
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    function unescape ( $var ) {
      $var = stripslashes($var);
      return ($var);
    }
    
    # moegliche typ vars
    # - integer
    # - string
    # - textarea
    function escape ($var, $type) {
      switch ( $type ) {
    	  case 'integer' :
          $var = intval ($var);
          break;
        case 'string' :
    			$var = (get_magic_quotes_gpc() ? stripslashes($var) : $var );
          $var = strip_tags ($var);
          $var = addslashes ($var);
    		break;
    		case 'textarea' :
          $var = (get_magic_quotes_gpc() ? stripslashes($var) : $var );
    			$var = addslashes ($var);
    
    		break;
    	}
    	return ( $var );
    }
    
    function escape_nickname ($t) {
      $t = preg_replace("/[^a-zA-Z0-9-\[\]\*\ \+=\._\|]/","",$t);
      $t = substr($t, 0, 15);
      $t = escape($t, 'string');
      return ($t);
    }
    
    function escape_for_email ($t, $leerzeichen = false) {
      if ($leerzeichen === true) {
        $t = preg_replace ("/\015\012|\015|\012|\072|\074|\076/", "", $t);
      } else {
        $t = preg_replace ("/\015\012|\015|\012|\072|\074|\076|\040/", "", $t);
      }
      return ($t);
    }
    
    function escape_for_fields ($t) {
    #  $t = str_replace ('<', '&lt;', str_replace('>', '&gt;', $t));
    #  $t = str_replace ('<', '&lt;', str_replace('>', '&gt;', $t));
    #  $t = str_replace ('<', '&lt;', str_replace('>', '&gt;', $t));
      $t = htmlentities($t, ILCH_ENTITIES_FLAGS, ILCH_CHARSET);
      
      return ($t);
    }
    
    function escape_email_to_show ($str) {
      $ret = "";
      $arr = unpack("C*", $str);
      foreach ($arr as $char) {
        $ret .= sprintf("%%%X", $char);
      }
      return $ret;
    }
    ?>


    Ich hoffe das man in Zeile 37 die entsprechenden ö ä ü einfügen muss in der entsprechenden Codierung oder sehe ich das Falsch...
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    Egal wie ich es mache ich bekomme es nicht hin Ich brauch wohl doch Professionelle Hilfe

    Zeile 37
    $t = preg_replace("/[ä/Ä/ö/Ö/ü/Ü/^a-zA-Z0-9-\[\]\*\ \+=\._\|]/","",$t);


    ich habe es auch mit den Codes Probiert...
    designerzone.de/html-umlaute-und-sonderzeichen/


    Zuletzt modifiziert von Evolver1709 am 19.05.2017 - 13:38:27
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    Keiner weiter ne Idee oder ein Vorschlag?
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    $t = preg_replace("/[^a-zA-Z0-9äÄöÖüÜ\-\[\]\*\ \+=\._\|]/","",$t);



    Zuletzt modifiziert von Mairu am 21.05.2017 - 04:19:11
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    Danke Mairu geht leider nicht ....

    habe gleich ne Fehler meldung...

    Warning: preg_replace(): Compilation failed: range out of order in character class at offset 25 in /mnt/web013/e0/05/57067405/htdocs/html/include/includes/func/escape.php on line 37 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web013/e0/05/57067405/htdocs/html/include/includes/func/escape.php:37) in /mnt/web013/e0/05/57067405/htdocs/html/include/includes/class/design.php on line 23

    da hängt wohl doch mehr dran als ich dachte
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Mhh hab noch ne kleine Änderung gemacht, versuche es bitte nochmal.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Mir ist noch was anderes aufgefallen.Im Fehlertext steht ja unter Anderem auch drin, dass der Nickname mindestens 3 Zeichen lang sein soll. Aktuell funktioniert die Registrierung auch mit Nicknames, die nur aus einem oder zwei Buchstaben bestehen. Aber das nur am Rande...
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    es kommt jetzt zwar der Fehler Code nicht mehr aber mit dem Registrieren klappt es trotzdem nicht...

    die selbe ausgangs Situation wie in meinem ersten Post
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Also bei mir hat es mit Mairu's Codeschnipsel funktioniert.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    es klappt auch auf meiner Bastel seite nicht... ich bin echt ratlos
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    Ich habe mal was ausprobiert ich habe die Zeile aus mal aus gemacht mit dem Registrieren Klappt es . Ist die Zeile den so unbedingt notwendig?
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Es gibt schon ein paar Zeichen, die nicht im Nickname vorkommen sollten. z.B. <>" Falls der Name dann noch im Dateisystem verwendet wird, sind es noch mehr Zeichen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Evolver1709 Mitglied
    Registriert seit
    10.02.2016
    Beiträge
    115
    Beitragswertungen
    5 Beitragspunkte
    Ich habe es hin bekommen nach Langem Experimentierereien

    $t = preg_replace("/[^a-zA-Z0-9[ä][Ä][ö][Ö][ü][Ü]-\[\]\*\ \+=\._\|]/","",$t);


    das geht bei mir....

    Aber Danke noch mal für eure Hilfe
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten