Ergebnis 1 bis 8 von 8

Thema: Eingabe nach ISO-8859-15 Filtern.

  1. #1
    Interessierte/r
    Registriert seit
    18.08.2007
    Beiträge
    112
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Eingabe nach ISO-8859-15 Filtern.

    Hallo zusammen,

    in meinem PHP-Script möchte ich Benutzereingaben die VIA Post kommen mit einem Regex Filtern.
    Und zwar sollen nur Zeichen von 20-FE und A1-FF möglich sein.
    (Code-Tabelle: http://de.wikipedia.org/wiki/ISO_8859-15#Tabelle)

    Nun kann man diese Prüfung nach dem Hex-Wert ja z.B. so lösen (Beispielhaft):
    Code:
    preg_match('/[\x00-\x09\x0b-\x1f\x7f-\x9f]/')

    Ich frage mich nur wie ich beeinflussen kann das die Code-Tabelle der von ISO-8859-15 verwendet wird, diese unterscheidet sich ja in den "Nicht ASCII"-Bereichen von z.B. ISO-8859-1 und somit repräsentieren die HEX-Werte auch andere Zeichen.


    Bitte keine UTF-8 Diskussion starten, mir geht es einfach nur um die Frage.


    Freue mich über eure Antworten,

    Grüße!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Eingabe nach ISO-8859-15 Filtern.

    Dein Beispiel ist unvollständig, siehe: http://de.php.net/preg_match

    Wenn Du iso-15-Zeichen suchen willst, dann genügt es wenn der zu durchsuchende String diesen Zeichensatz verwendet und Du in den Suchparametern auch diese Zeichen angibst - aber nicht so kodiert wie in deinem Beispiel. Alternativ könntest Du auch den zu durchsuchenden String in Hex-Codes umwandeln und dann diesen mit deinen kodierten Zeichen durchsuchen.

  3. #3
    Interessierte/r
    Themenstarter

    Registriert seit
    18.08.2007
    Beiträge
    112
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Eingabe nach ISO-8859-15 Filtern.

    Hallo threadi,

    ja das Beispiel sollte nur den Regulären Ausdruck zeigen, aber hätte ich natürlich besser vollständig hingeschrieben um Verwirrung vorzubeugen

    "Wenn der zu durchsuchende String diesen Zeichensatz verwendet"
    Aber wie kann ich das sicherstellen, im Grunde könnte ja jemand das Formular mit einem ganz anderen Zeichensatz abschicken, als angeben. (Manipulieren.)
    Gut bei der Variante, wo ich einfach alle "gültigen" ISO-15 Zeichen in meinen Regulärenausdruck schreibe ich die Sache natürlich einfach, alles was da nicht drin vorkommt,
    wird ignoriert.

    Aber ich dachte vlt. ein eine Möglichkeit mit der Code-Tabelle zu arbeiten. Aber den String kann ich ja auch nicht einfach in Hex-Codes umwandeln.
    Es gibt ja nur die "ord"-Methode wo ich ein ASCII-Wert von einem Zeicehn zurück kriege, aber ISO-15 ist ja ein 8-BIt Zeichensatz und hat noch
    ein paar mehr Zeichen als der normale ASCII-Stamm.

    Es scheint mir so, als sei die direkte Angabe der gültigen Zeichen, die einzige Möglichkeit, ist dem wirklich so?

  4. #4
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Eingabe nach ISO-8859-15 Filtern.

    Und was hast du davon, Leute zu vergraulen, die andere Zeichen benutzen? Ich würde mal sagen ziemlich wenig…
    Ich verwende dauernd Nicht-ISO-8859-1-Unicode-Zeichen und wäre recht verärgert, wenn das dan einfach nicht funktioniert.
    Geändert von The User (07.01.2011 um 18:45 Uhr)

  5. #5
    Interessierte/r
    Themenstarter

    Registriert seit
    18.08.2007
    Beiträge
    112
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Eingabe nach ISO-8859-15 Filtern.

    Das Problem ist, dass die Daten über eine Schnittstelle (die ich nicht beeinflussen kann) in ein zweites System geladen werden. Und hier hakt es manchmal, weil die Schnittstelle mit bestimmten Zeichen nicht klar kommt.

    Da ich nicht weiß welche Zeichen das sind, bzw. es ja tausende sein können ist eine Whitelist meist einfacher zu erstellen bzw. wurde mir vom dies vom Schnittstellenersteller quasi "vorgeschrieben" doch bitte nur ISO-Zeichen zuzulassen.

    Aber die nicht ISO-15 Zeichen kommen ja als HTML-Entity an, diese müsste ich also erstmal wieder zurück wandeln in das Ursprungszeichen um es mit dem Regex abzugleichen.

  6. #6
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Eingabe nach ISO-8859-15 Filtern.

    Was? Nein, die kommen nicht als HTML-Entity an. Wäre auch ziemlich unsinnig, da ja von HTTP festgelegt wird, wie die Formular-Eingaben verschickt werden, und das ist ja unabhängig von HTML. Das wird mit Anführungszeichen geschickt, wenn ich das richtig sehe, aber davon bekommst du mit PHP auch gar nichts mit. An Stelle der Filterung die speziellen Zeichen mit HTML-Entities zu ersetzen wäre allerdings wohl sinnvoller.

  7. #7
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Eingabe nach ISO-8859-15 Filtern.

    Hier stimme ich The User zu. Einfach durch htmlentities oder urlEncode jagen, das ergebnis sollte den anforderungen entsprechen.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  8. #8
    Interessierte/r
    Themenstarter

    Registriert seit
    18.08.2007
    Beiträge
    112
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Eingabe nach ISO-8859-15 Filtern.

    Hallo zusammen,

    ich hatte bei meiner ISO-15 Seite mal ein Zeichen eines anderen ISO-Zeichensatzes (welcher nicht in ISO-15 enthalten ist) reinkopiert und abgeschickt. Dieser kam auf der nächsten Seite an, aber direkt schon als Entity (im Quellcode sichtbar), ohne das ich was gemacht habe.

    Wie sollte das Zeichen sonst auch verarbeitet werden, wenn man nach Bit/HEx-Code geht muss man sich ja trotzdem für eine Codetabelle bei der Interpretation entscheiden und da kann ein Zeichen unterschiedlich sein.



    Das Problem an der Entity Geschichte ist ja, dass die Schnittstelle bzw. in letzter Konsequenz die Warenwirtschaft mit den Zeichen nicht viel anfangen kann. Zudem können so immer noch Zeichen in die DB gelangen, die kein entsprechendes Entity besitzen.

Ähnliche Themen

  1. ISO-8859-1 mit Umlauten?
    Von 1234d1 im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 17.11.2009, 12:16
  2. Problem bei der Zeichenkodierung mit iso-8859-1
    Von kruemell im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 1
    Letzter Beitrag: 29.03.2007, 15:42
  3. Antworten: 0
    Letzter Beitrag: 19.03.2007, 14:24
  4. stadt automatisch einfügen nach Postleitzahl eingabe
    Von azrael im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 30.07.2006, 00:34
  5. datensatz aus array filtern
    Von J-T im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 27.01.2006, 21:11

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •