Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt]Programm zum Ausrechnen funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • [Erledigt]Programm zum Ausrechnen funktioniert nicht

    Arbeite grad ein PHP Buch durch, so zuerst hatte beide Programme ohne Lösung (die es am ende des Buches gibt) gecodet, war sogar fast identisch funktioniert bloß nicht.
    Auch die Lösungen nach dem Buch funktionieren nicht...

    Aufgabe 1
    PHP-Code:
    <form action="b13.php" method="post">
        <input name="liter"> Menge in Liter <p>
        <input name="sorte"> Sorte (S oder N)<p>
        <input type="submit">
        <input type="reset">
    </form>

    <?php
    if ($sorte == "N")
    {
        
    $zahlung $liter 1.05;
        
    $text "Normal";
    }
    else
    {
        
    $zahlung $liter 1.15;
        
    $text "Super";
    }

    echo 
    "$liter Liter $text kosten $zahlung Euro";
     
    ?>
    Aufgabe 2 (Großkunden bekommen ab 100 Liter 2 % Rabbat).

    PHP-Code:
    <form action="b14.php" method="post">
        <input name="liter"> Menge in Litern <p>
        <input name="sorte"> Sorte (N oder S) <p>
        <input type="submit">
        <input type="reset">
    </form>

    <?php
    if ($_Post["sorte"] == "N")
    {
        
    $zahlung $_Post["liter"] * 1.05;
        
    $text "Normal";
    }
    else
    {
       
    $zahlung $_Post["liter"] * 1.15;
        
    $text "Super";
    }
    if (
    $_Post["liter"] >= 100)
        
    $zahlung $zahlung 0.98;


    echo 
    $_Post["liter"] . "Liter $text kosten $zahlung Euro";
     
    ?>
    Ich versteh das nicht, beide Aufgaben sind nun nach der Lösung aus dem Buch und sie funktionieren nicht?

    MfG
    Hendrik

  • #2
    Was funktioniert denn nicht? Fehlermeldungen? Wie hast du die Skripte aufgerufen?

    Kommentar


    • #3
      Steht der php Teil der beiden Aufgaben eh in "b13.php" bzw. "b14.php"?

      Kommentar


      • #4
        Ich habe es gerade getestet. Du musste auf Groß- und Kleinschreibung achten, d.h.:
        if ($sorte == "N" OR $sorte == "n")

        Kommentar


        • #5
          Vielleicht fehlt da der Rest vom HTML Code??

          Code:
          <html>
          <head><title></title></head>
          <body>
             <!-- Formular -->
             <!-- PHP Verarbeitung -->
          </body>
          </html>

          Kommentar


          • #6
            Versuchs mal mit

            PHP-Code:
            <form action="b13.php" method="post">
                <input name="liter"> Menge in Liter <p>
                <input name="sorte"> Sorte (S oder N)<p>
                <input type="submit">
                <input type="reset">
            </form>

            <?php
            if ($_POST['sorte'] == "N")
            {
                
            $zahlung $_POST['liter'] * 1.05;
                
            $text "Normal";
            }
            else
            {
                
            $zahlung $_POST['liter'] * 1.15;
                
            $text "Super";
            }

            echo 
            "$_POST['liter'] Liter $text kosten $zahlung Euro";
             
            ?>
            Nur ein kleiner Tipp am Rande, ich würde die Berechnung und Ausgabe in ein
            PHP-Code:
            if(isset($_POST['sorte'])
            {
             
            //Berechnung und Ausgabe

            nehmen, dann erscheint das Resultat erst nach dem Schicken der Daten

            Kommentar


            • #7
              Das ausrechnen funktioniert halt nicht, ich gebe den Betrag ein und die Sorte "N" dennoch bleibt das ergebniss "0".

              @element
              PHP-Code:
              echo "$_POST['liter'] Liter $text kosten $zahlung Euro";
               
              ?> 
              Gibt nen fehler aus.
              PHP-Code:
              echo $_POST['liter'] . "Liter $text kosten $zahlung Euro";
               
              ?> 
              Ist schon richtig würde ich meinen?Ist aufjedenfall in der Lösung so und gibt keinen Fehler aus.

              Am HTML-Grundgerüst kann es auch nicht liegen (schon getestet)...

              Hab das Buch "Einstieg in PHP 5" von Thomas Theis (halt eigentlich alles drin OOP usw.).

              Kommentar


              • #8
                Gib halt mal $_POST mit var_dump() o.ä. aus

                Kommentar


                • #9
                  Da fehlen {}

                  if ($_Post["liter"] >= 100)
                  {
                  $zahlung = $zahlung * 0.98; }

                  Kommentar


                  • #10
                    Zitat von flual2000 Beitrag anzeigen
                    Da fehlen {}
                    So kann man das nicht sagen; wenn nur ein Befehl nach dem if folgt, sind die nicht unbedingt nötig. Aber schöner wäre es schon, allerdings wenn schon, dann etwas besser formatiert!

                    Kommentar


                    • #11
                      Evtl. mal folgendes probieren:

                      PHP-Code:
                       $zahlung floatval($_POST['liter']) * 1.05

                      Kommentar


                      • #12
                        Also bei mir hat es das Problem behoben

                        Kommentar


                        • #13
                          Also so klappts bei mir:
                          PHP-Code:
                          <form action="b13.php" method="post">
                              <input name="liter"> Menge in Litern <p>
                              <input name="sorte"> Sorte (N oder S) <p>
                              <input type="submit">
                              <input type="reset">
                          </form>

                          <?php
                          if ($_POST["sorte"] == "N")
                          {
                              
                          $zahlung $_POST["liter"] * 1.05;
                              
                          $text "Normal";
                          }
                          else
                          {
                             
                          $zahlung $_POST["liter"] * 1.15;
                              
                          $text "Super";
                          }
                          if (
                          $_POST["liter"] >= 100$zahlung $zahlung 0.98;


                          echo 
                          $_POST["liter"] . "Liter $text kosten $zahlung Euro";
                           
                          ?>

                          Kommentar


                          • #14
                            Und darauf achten: Variablennamen sind in PHP case-sensitive. $_POST, nicht $_Post.

                            Kommentar


                            • #15
                              Es funktionier danke leute.

                              @David:Lag wohl daran das ich das case-sensitive, kleingeschrieben hatte.

                              Kann ich beruhigt weiter machen ^^.

                              Kommentar

                              Lädt...
                              X