dieselross: Zeilenumbrüche aus Nachrichtenfeld zulassen. Wie?

Hallo Gemeinde,

als php-Novize versuche ich zu verstehen, was mein (relativ gut funktionierendes) "FormsToGo" da alles so macht. Ich habe nämlich doch noch den einen oder anderen offenen Wunsch, den ein auf die englische Sprache ausgelegter Codegenerator nicht abdeckt. So zum Beispiel auch das (zulässige) Vorkommen von Leerzeilen bzw. Zeilenumbrüchen in einem Mitteilungsfeld. Bisher habe ich als Auswertung dies hier:

if (!CheckString($FTGmitteilung, 4, 1000, kStringRangeBetween, kYes, kYes, kYes, '-/&äöüÄÖÜß\'áéíóúÁÉÍÓÚàèìòùÀÈÍÓÚ.,;:@()"', kMandatory)) {  
 $FTGErrorMessage['mitteilung'] = '<p class="errorleft">Bitte mindestens 4, höchstens 1000 Zeichen!</div>';  
 $validationFailed = true;  
}

Leider werden Leerzeilen nicht als zulässig erkannt. Mir ist schon klar, dass ich da noch etwas in den Bereich der zugelassenen Zeichen einfügen muss, aber ich weiß leider nicht, was. Ich hab's schon mit \n und \r beziehungsweise einer Kombination davon versucht, aber es funktioniert nicht. Ich sehe ein, ich brauche Hilfe.

Gruß
dieselross

--
- life's for learning -
Ceterum censeo IE esse delendam
besucht mich auf www.re-ality.de
  1. Hallo

    … So zum Beispiel auch das (zulässige) Vorkommen von Leerzeilen bzw. Zeilenumbrüchen in einem Mitteilungsfeld. Bisher habe ich als Auswertung dies hier:

    if (!CheckString($FTGmitteilung, 4, 1000, kStringRangeBetween, kYes, kYes, kYes, '-/&äöüÄÖÜß\'áéíóúÁÉÍÓÚàèìòùÀÈÍÓÚ.,;:@()"', kMandatory))

    Leider werden Leerzeilen nicht als zulässig erkannt. Mir ist schon klar, dass ich da noch etwas in den Bereich der zugelassenen Zeichen einfügen muss, aber ich weiß leider nicht, was. Ich hab's schon mit \n und \r beziehungsweise einer Kombination davon versucht, aber es funktioniert nicht.

    Außer dir kennt keiner die Funktion CheckString. Der Wurm der offensichtlich erlaubten Zeichen (was ist mit lateinischen Buchstaben, Ziffern, von anderen Schriftsystemen nicht zu sprechen?) lässt vermuten, dass damit eine Funktion für reguläre Ausdrücke gefüttert wird. Wenn dem so ist, muss ein Backslash, der nicht zur Maskierung anderer Zeichen sondern als zu suchendes Zeichen gedacht ist, selbst maskiert werden. Aus „\n“ würde somit „\n“, aus „\r\n“ würde „\r\n“.

    Ob diese Prüfung so überhaupt sinnvoll ist, lässt sich erst mit Einblick in die Funktion CheckString beurteilen.

    Tschö, Auge

    --
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
    Terry Pratchett, "Wachen! Wachen!"
    ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
    1. @@Auge:

      nuqneH

      Ob diese Prüfung so überhaupt sinnvoll ist, lässt sich erst mit Einblick in die Funktion CheckString beurteilen.

      Das hat IMHO nichts mit der Funktion CheckString zu tun.

      Ob diese Prüfung so überhaupt sinnvoll ist, lässt sich erst anhand ihrer Begründung beurteilen.

      Mir erscheint sie nicht sinnvoll. Warum solltem Nutzern derartige Einschränkungen auferlegt werden? Warum werden haufenweise Zeichen für westeuropäische und südeuropäische Sprachen zugelassen, aber nicht für mitteleuropäische und södosteuropäische?

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  2. Hallo Gemeinde,
    Leider werden Leerzeilen nicht als zulässig erkannt.

    Du willst Leerzeilen erkennen? Entferne von jeder Zeile leading/trailing Spaces und wenn danach von der Zeile nichts mehr übrigbleibt, war das eindeutig ne Leerzeile.

    Schöne Grüße;

  3. Liebe Mitdenker,
    liebe Wissende,
    liebe Neugierige,

    ja!

    if (!CheckString($FTGmitteilung, 4, 1000, kStringRangeBetween, kYes, kYes, kYes, '-/&äöüÄÖÜß'áéíóúÁÉÍÓÚàèìòùÀÈÍÓÚ.,;:@()"', kMandatory)) {

    $FTGErrorMessage['mitteilung'] = '<p class="errorleft">Bitte mindestens 4, höchstens 1000 Zeichen!</div>';
    $validationFailed = true;
    }

    
    > Leider werden Leerzeilen nicht als zulässig erkannt.  
      
    Solange es keine Zeilenumbrüche gibt, gibt es auch keine Leerzeilen.  
      
    Dürfen denn die im Funktionsaufruf aufgeführten Zeichen vorkommen, oder eben nicht? Ohne Kenntnisse über die Funktionsdefinition kann man schwer etwas über die Funktionsweise sagen.  
      
    Ich rate daher mal, dass einfach ein \r\n eingefügt werden muss. Damit es auch als Steuerzeichen interpretiert wird, müssten dann vermutlich die Stringbegrenzer von ' nach " getauscht werden.  
      
    Und wenn das klappt, bleibt noch das Problem, dass die Funktion scheinbar zeichenweise prüft, "\r\n" aber als Zeichengruppe geprüft werden müsste.  
      
    Zeig also bitte die Funktion.  
      
      
      
    Spirituelle Grüße  
    Euer Robert
    
    -- 
    Möge der Forumsgeist wiederbelebt werden!