Ankündigung

Einklappen
Keine Ankündigung bisher.

Umlaute blockieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umlaute blockieren

    Hallo!

    Ich betreibe momentan eine türkische Website, alles ist bis jetzt auch Problemlos verlaufen, doch leider gibt es jetzt ein riesiges Problem. In der Türkei gibt es folgende Umlaute:



    Diese lassen sich leider nicht in der Datenbank speichern, deswegen möchte ich diese für die Passwörter sperren (da man sich sonst nicht einloggen kann).

    Folgender Code:
    PHP-Code:
    elseif(!preg_match("/^[a-zA-Z._ ]{3,15}$/",$name)) {
                
    $errors "Bu Isim geçersizdir!";
            } 
    Es werden trotzdem die türkischen Umlaute erlaubt. Da ich die Umlaute nicht in den Editor einfügen kann, kenne ich keinen anderen weg.
    Sobald ich ç in den Editor eingebe wird es als c angezeigt.

    Hat jemand eine Idee, Vorschlag?


  • #2
    Nutze konsequent UTF8, dann hast du auch mit türkischen Zeichen keine Probleme.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Es wird schon UTF8 verwendet.

      Kommentar


      • #4
        Und ich dachte schon man hasht Passwörter heutzutage

        Kommentar


        • #5
          ich seh immer noch kein Problem - da du ja HOFFENTLICH keine Klartextpasswörter in der Datenbank ablegst, sondern deren Hash-Werte - und wenn die Datenbank (angeblich) mit den Umlauten nicht klarkommt, dann kannst du die Hashwerte auch in PHP erzeugen und damit die Datenbank füttern oder abfragen - vielleicht schaust du aber doch nochmal auf deinen Code zum Datenbankzugriff ... es wird nämlich oft vergessen, die eigentliche Verbindung auf auf utf-8 zu stellen.
          "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

          Kommentar


          • #6
            Es wird ein Hash verwendet.. lol. Ich weiß auch nicht wieso es nicht gehen soll, verwendet man ein Passwort wie zum Beispiel "abc123" klappt der Login, aber sobald türkische Umlaute im Passwort enthalten sind funktioniert der Login nicht.

            Kommentar


            • #7
              dann zeig mal Code-Ausschnitte und am besten auch Informationen über die bestreffende Datenbank-Spalten
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

              Kommentar


              • #8
                mysql_set_charset('utf-8');

                Hab ich in der Config drinnen, sprich das ist in jeder Seite.

                Kommentar


                • #9
                  willst du uns veralbern? Code ... und bitte mehr als diese eine Zeile

                  wobei -- die gibt schon einen Hinweis

                  1) du verwendest LEIDER die uralte mysql_-Erweiterung - bitte lern was anständiges wie mysqli oder gleich PDO ...

                  2) schicke diese Char-Set Einstellung als erste Abfrage an die Datenbank....
                  "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                  Kommentar


                  • #10
                    Offensichtlich machst du ja beim Hashen schon irgendwas falsch, denn der MD5-Hash ist (wenn du ihn in hexadezimaler Ausgabe bekommst, so wie in PHP standardmäßig) auf jeden Fall in ASCII, das Encoding in der Datenbank ist daher vermutlich zu vernachlässigen. Du solltest eher mal den Code davor zeigen wie du den Hash bildest bzw. am besten mal ein paar Plaintext mit zugehören Hashes ausgeben lassen, damit man überprüfen kann ob die korrekt sind.

                    Kommentar


                    • #11
                      Zitat von SchokoBrunnen Beitrag anzeigen
                      Diese lassen sich leider nicht in der Datenbank speichern
                      Zitat von SchokoBrunnen Beitrag anzeigen
                      mysql_set_charset('utf-8');
                      Hab ich in der Config drinnen, sprich das ist in jeder Seite.
                      Da magische Kugel sagt mir: NUR die Verbindung nutzt UTF-8, alle Spalten und Tabellen sind auf ISO-8859-1(5).

                      Zitat von SchokoBrunnen Beitrag anzeigen
                      Es wird ein Hash verwendet.. lol. Ich weiß auch nicht wieso es nicht gehen soll
                      Offensichtlich verwendest du keinen Hash (oder schickst den falschen Wert an die DB).→
                      PHP-Code:
                      // so in etwa...
                      $hash sha1($passwort);
                      SELECT FROM benutzer WHERE benutzer '$benutzer' AND passwort '$passwort'
                      ???

                      Also zeig uns mal deinen Code oder schreib nikosch, damit er den Thread schließt.
                      Windows Server gehören NICHT ins Internet!

                      Dildo? Dildo!

                      Kommentar

                      Lädt...
                      X