Ankündigung

Einklappen
Keine Ankündigung bisher.

Anfängerproblem mit Befehl fgets(STDIN);

Einklappen

Neue Werbung 2019

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

  • Anfängerproblem mit Befehl fgets(STDIN);

    Hallo,
    ich habe gerade mit PHP angefangen und bin nun auf folgendes Problem gestoßen:

    Mein Code lautet

    <?php
    DEFINE ("PI", 3.14159265);
    echo "Berechnungen am Kreis\n";
    echo "---------------------\n\n";
    echo "Radius in cm : ";
    $r = (double) fgets(STDIN);
    $kumfang = 2 * $r * PI;
    $kflaeche = $r * $r * PI;
    printf ("\nUmfang : %7.2f\n", $kumfang);
    printf ("Flaeche : %0.2f\n\n", $kflaeche);
    ?>




    Nun bekomme ich im Browser die Fehlermeldung:

    Nettobetrag ermitteln --------------------- Bitte den Bruttobetrag :
    Warning: Use of undefined constant STDIN - assumed 'STDIN' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\10-brutto_netto.php on line 11

    Warning: fgets() expects parameter 1 to be resource, string given in C:\xampp\htdocs\10-brutto_netto.php on line 11
    Bruttobetrag : 0 Mehrwertsteuer : 0 Nettobetrag : 0



    Ich bin nun schon Stunden auf der Suche nach einer Lösung.
    Vielfach wird zur Verwendung von Formularen geraten.
    Dann wieder gesagt fgets ist total veraltet, dass dann wieder an anderer Stelle bestritten.
    u.s.w.
    Ich bin einfach nur noch verwirrt und würde mich freuen, wenn mir jemand das Problem verständlich näher bringen könnte.

  • #2
    STDIN steht nur im CLI zur Verfügung, und nicht wenn du PHP-Scripts per HTTP-Request ausführst.

    Kommentar


    • #3
      Ah ok, vielen Dank.
      liegt das daran, dass der in einer HTTP-Request nichts zwischengespeichert werden kann ohne ein Session - Parameter?
      Dann müsste ich mein Problem durch Schaffung eins Cookie lösen (ist jetzt nur gemutmaßt)?
      Oder sehe ich das zu kompliziert und es gibt einen einfachen "Ersatzbefehl"?

      Viele Grüße

      Kommentar


      • #4
        Wie bereits gesagt, STDIN steht nur im CLI zur Verfügung:

        https://www.php.net/manual/de/features.commandline.php

        Wenn du Benutzereingaben per HTTP-Request übertragen möchtest, brauchst du ein HTML-Formular:

        https://www.php.net/manual/de/tutorial.forms.php

        Kommentar


        • #5
          Danke Dir für deine Hilfe

          Kommentar


          • #6
            Zitat von Milo83 Beitrag anzeigen
            Vielfach wird zur Verwendung von Formularen geraten.
            Ist auch mein Rat. Konkret eignet sich hierfür ein sogenanntes Affenformular gut für deine Aufgabe..

            Kommentar


            • #7
              jspit Danke Dir für den Hinweis

              Kommentar

              Lädt...
              X