Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP - Undefined Index Fehlermeldung

Einklappen

Neue Werbung 2019

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

  • PHP - Undefined Index Fehlermeldung

    Hallo Leute,
    ich bin neu hier im Forum (auch PHP-Anfänger) und habe bereits eine Frage. Ich bin erst 13 Jahre alt, also bitte nicht zu schwer (auch nicht zu einfach) formulieren bzw. erklären. Ich habe heute einen Taschenrechner mit HTML (die Textfelder) und PHP geschrieben. Ich bekomme beim Ausführen im Browser eine Fehlermeldung mit undefined index, liegt wohl am HTML Attribut name welches ich per $_POST einer Variable zugewiesen hab. Dann habe ich es mit isset() versucht, um zu gucken ob die Variable initialisiert wurde. Ich bekam eine 1 für true. Wie repariere ich jetzt die Fehler?

    PS: Warum wird vBulletin eingesetzt, wenn dies ein PHP-Forum ist?

    Hier der Code:
    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>Taschenrechner</title>
        </head>
        <body>
            <form action="index.php" method="post">
                <input type="radio" name="rechenart" value="+">Plus</input><br />
                <input type="radio" name="rechenart" value="-">Minus</input><br />
                <input type="radio" name="rechenart" value="*">Mal</input><br />
                <input type="radio" name="rechenart" value="/">Geteilt</input><br />
                
                Erste Zahl eingeben:<input type="text" name="zahl1" size="40" maxlength="40" /><br />
                Zweite Zahl eingeben:<input type="rext" name="zahl2" size="40" maxlength="40" /><br />
                
                <input type="submit" name="rechnen" value="Rechnen!" />
            </form>
            <?php
            $rechenart 
    $_POST['rechenart'];
            
    $zahl1 $_POST['zahl1'];
            
    $zahl2 $_POST['zahl2'];
            
            if (
    $rechenart == '+') {
                
    $ergebnis $zahl1 $zahl2;
            }
            if (
    $rechenart == '-') {
                
    $ergebnis $zahl1 $zahl2;
            }
            if (
    $rechenart == '*') {
                
    $ergebnis $zahl1 $zahl2;
            }
            if (
    $rechenart == '/') {
                
    $ergebnis $zahl1 $zahl2;
            }
            echo 
    'Das Ergebnis lautet ' .$ergebnis;
            
    ?>
        </body>
    </html>


  • #2
    Beim ersten Aufruf deiner Seite stehen die ganzen $_POST-Variablen noch garnicht zur verfügung, erst nach absenden des Formulars, daher musst du mit isset() prüfen ob sie existieren bevor du damit arbeitest.

    Zitat von The Nerd Beitrag anzeigen
    PS: Warum wird vBulletin eingesetzt, wenn dies ein PHP-Forum ist?
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      In dem du mit if auf das Ergebnis von isset() entsprechend reagierst und bei vorhandensein des Wertes im POST den Wert an die Var zuweist und sonst nichts bzw. einen Defaultwert.
      Und Daten von aussen immer validieren/prüfen - nicht vergessen.

      Siehe auch: http://php-de.github.io/#form

      PS: Warum wird vBulletin eingesetzt, wenn dies ein PHP-Forum ist?
      ??
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Danke für die Antworten, funktioniert!

        Kommentar


        • #5
          Hallo,
          ab 5.3 kann man das so machen:

          per get:
          PHP-Code:
          $username filter_input(INPUT_GET'username'FILTER_CALLBACK$options); 
          per Post:
          PHP-Code:
          $username filter_input(INPUT_POST'username'FILTER_CALLBACK$options); 
          dann sind variabeln definiert und gefiltert.

          mfg jens

          Kommentar


          • #6
            Warum wird vBulletin eingesetzt, wenn dies ein PHP-Forum ist?
            Wenn dir mal langweilig ist kannst du ja mal versuchen ein eigenes Forum zu Coden. Viel Spaß
            Nützliches:

            Kommentar


            • #7
              Hallo,
              dann viel spass,
              alleine dauert es ca 2 Jahre .
              Dann biste aber schnell.

              Kommentar


              • #8
                Quatsch. Wenn man es richtig macht, ist man in ein paar Wochen durch. Ein modernes Forum auf Couch- oder Mongo-basis würde mich vielleicht sogar reizen.
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar

                Lädt...
                X