variable wird nicht gesezt

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

  • variable wird nicht gesezt

    Hallo, ich bin bissl neben der Spur oder ?

    folgender codeschnipsel funzt bei mir nich, vielleicht muss man das auch anders schreiben, nur versteh ich nicht, warum das nicht funktioniert:
    PHP-Code:
    If (strlen($_POST["comment_usr"]) >= 5) {
    $db_usr htmlentities($_POST["comment_usr"]);
    }Else{
    $err "Geben Sie einen Namen mit minimal 3 Zeichen an!";
    }
            
    If (
    strlen($_POST["blog_comment"]) >= 3) {
    $db_comment htmlentities($_POST["blog_comment"]);
    }Else{
    $err "Ihr Kommentar muss mindestens 3 Zeichen enthalten!";

    So, und weiter unten im Script steht dann :
    PHP-Code:
    If (isset($err)) {
    print (
    $err);

    So, nun ist es so, das wenn die erste IF schleife nicht zutrifft, wird $err unten ausgegeben, jedoch passiert das bei der ersten If schleife nicht!?

    Ist das normal? Woran liegt das, das $err nach der ersten If Schleife nicht gesetzt ist ?

    mfg
    paddy

  • #2
    Ist das normal?
    erwartest du hierauf eine antwort?

    lass dir doch ausgeben, was strlen zurückgibt, damit du weißt, in welche bedingungsblöcke du gelangst.

    außerdem - wenn beide bedingungen nicht zutreffen, überschreibst du die fehlermeldung aus dem ersten block mit der zweiten.

    benutze arrays, um verschiedene fehlermeldungen zu speichern.

    Kommentar


    • #3
      Re: variable wird nicht gesezt

      1. http://www.php-faq.de/q/q-terminologie-if.html


      So, nun ist es so, das wenn die erste IF schleife nicht zutrifft, wird $err unten ausgegeben, jedoch passiert das bei der ersten If schleife nicht!?
      mal mit testausgaben überprüft, wo da reingesprungen wird ...?

      wenn schon meldung (name muss > 3 zeichen sein) und abfrage ( >=5) nicht übereinstimmen
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Original geschrieben von penizillin
        erwartest du hierauf eine antwort?

        lass dir doch ausgeben, was strlen zurückgibt, damit du weißt, in welche bedingungsblöcke du gelangst.

        außerdem - wenn beide bedingungen nicht zutreffen, überschreibst du die fehlermeldung aus dem ersten block mit der zweiten.

        benutze arrays, um verschiedene fehlermeldungen zu speichern.
        1. hab mir ausgeben lassen, was strlen zurückgibt :
        - jedesmal, wenn ich das Form getestet habe, wurde mit Absicht ein wert angegeben, der kleiner als 3 ist. (5 steht da nur, weil ich zwischenzeitlich was anderes probiert habe). Der Wert den strlen zurückgibt ist richtig und somit springt das script auch in die richtige richtung ($err = "Geben Sie einen Namen mit minimal 3 Zeichen an!"

        2. Fehlermeldungen Überschreiben:
        Es ist mir egal, welche Fehlermeldung zuerst auftritt, deshalb nur $err. Sobald jedoch $err gesetzt wurde, soll das $err ausgegeben werden. Deshalb kann einer Fehlermeldung die Andere auch überschreiben.

        3. Mein Problem ist, um es nochmal zu schreiben:
        Wenn die erste Bedingung (comment_usr) weniger als 5 (oder 3) Zeichen hat, müsste $err = "Geben Sie einen Namen mit minimal 3 Zeichen an!"; gesetzt werden oder nicht ? Also müsste in jedem Fall die Ausgabeschleife weiter unten greifen - oder sehe ich das falsch ?
        (unabhängig von der 2ten If Bedingung)

        Kommentar


        • #5
          ja.

          mit dem unterschied, dass hier nirgendwo von "schleifen" die rede sein sollte.

          Kommentar


          • #6
            Original geschrieben von paddy

            Wenn die erste Bedingung (comment_usr) weniger als 5 (oder 3) Zeichen hat, müsste $err = "Geben Sie einen Namen mit minimal 3 Zeichen an!"; gesetzt werden oder nicht ?
            Ist GANZ bestimmt auch so. Geht nicht anders. Da muss irgendwo anders ein fehler im Script sein.
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              Original geschrieben von penizillin
              ja.

              mit dem unterschied, dass hier nirgendwo von "schleifen" die rede sein sollte.
              Ja ok, das sehe ich ein - nur ich versteh nicht, warum das nicht funzt ?!

              Kommentar


              • #8
                weil dir irgendwo ein fehler unterlaufen ist.
                aber keiner wird dir sagen, wo er ist, weil du der einzige mensch auf erden bist, der diesen code debuggen kann.

                Kommentar

                Lädt...
                X