Reiner M.: STRLEN abgleichen

Hallöchen!

Ich habe mir folgende IF-Abfrage erstellt:

if ("" = $user_nachname | strlen($user_nachname) < 3)

leider schlägt dies fehl, wie kann ich die Abfrage ändern, um zu überprüfen ob der eingegebene Name weniger als 3 Zeichen enthält?

  1. Hi,

    if ("" = $user_nachname | strlen($user_nachname) < 3)

    Zwei Anmerkungen:

    1. | ist der Operator für bitweise Oder-Verknüpfung, ich überlasse es mal wieder einem anderen Forumsteilnehmer durchzuexerzieren was hier rauskommt. Du solltest || verwenden.
    2. "" hat welche Länge? 0. Demnach ist es auch von <3 betroffen.
      -> if (strlen($user_nachname) < 3) sollte reichen.

    MfG
    Rouven

    --
    -------------------
    ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
    1. Menno, da hätte ich auch selbst drauf kommen können!
      Das ist der Nachteil, wenn man als Basic-Programmierer auf PHP Scripten möchte, man versucht immer = als zuweisung und abgleich zu verwenden, statt = als Zuweisung und == als Abgleich zu nutzen!

      Sorry für die blöde frage ;-)

      1. Hallo Reiner.

        Das ist der Nachteil, wenn man als Basic-Programmierer auf PHP Scripten möchte, man versucht immer = als zuweisung und abgleich zu verwenden, statt = als Zuweisung und == als Abgleich zu nutzen!

        Ja, ich habe BASIC deswegen schon so manches Mal verflucht.

        Einen schönen Dienstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
  2. Hallo Reiner.

    if ("" = $user_nachname | strlen($user_nachname) < 3)

    Du solltest dir wirklich die Grundlagen im Umgang mit Operatoren verinnerlichen.

    Als erstes versuchst du einem leeren String einen Wert zuzuordnen, was zwangsläufig zu einem Parse error führt. Zudem verwendest du einen Bitoperator, obwohl du sicher einen logischen Operator verwenden wolltest.

    leider schlägt dies fehl, wie kann ich die Abfrage ändern, um zu überprüfen ob der eingegebene Name weniger als 3 Zeichen enthält?

    Warum überprüfst du dann überhaupt zuerst, ob $user_nachname einem leeren String entspricht? Ein solcher hätte eine Stringlänge von 0, wäre also auch kleiner als 3.

    Einen schönen Dienstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]