Ankündigung

Einklappen
Keine Ankündigung bisher.

Vokabeltrainer

Einklappen

Neue Werbung 2019

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

  • Vokabeltrainer

    Hallo Jungs.
    Ich bin neu hier und habe sogleich eine Frage bei der ihr mir hoffentlich helfen könnt.
    Ich habe einen SPanisch-Deutsch vokabeltrainer gebastelt doch er will nicht richtig funktionieren. Das Problem ist das er wenn ich auf ok drücke immer die Vokabel die folgt vergleicht. Ich hoffe ihr könnt mir helfen.

    Ps: Ich weiß dass ich nicht alles elegant gelöst habe aber ich bin noch ein Sprachanfänger.

    Vielen dank im vorraus und noch einen schönen Feiertag

    PHP-Code:
    <html>
    <head>
    <title></title>
    <meta name="author" content="Hannes">
    <meta name="editor" content="html-editor phase 5">
    </head>
    <body text="#000000" bgcolor="orange" link="navy" alink="navy" vlink="navy">

    <font size="+6" color="navy">Vokabeltrainer 1.0.0
    </font>    <p> <p><p><p><p>
    <font size="+2" color="navy">Deutsch-Spanisch
    </font>  <p><p><p><p>
    <?php
    $zufall 
    rand(0,4);
    $deutsch = array(
    "spielen",
    "gehen",
    "machen",
    "bestellen",
    "dienen",
    );

    $spanisch = array(
    "jugar",
    "ir",
    "hacer",
    "pedir",
    "servir",
    );

    $vokabel_anzahl count($deutsch);
    echo 
    $deutsch[$zufall];
    ?>
    <font color="orange">
    <?php
    echo $spanisch[$zufall];
    ?>     </font>
     <form method="post">
     <input name="spanisch">
     <input type="submit" value="OK"> </form>
     <?php
     $spa 
    $_POST['spanisch'];
     if(
    $spanisch[$zufall] == $spa)
     echo 
    "Richtig";
     else echo 
    "Falsch";
       
    ?>

       <p>
        <p>
       Der Vokabeltrainer besitzt momentan<strong> <?php  echo $vokabel_anzahl?></strong> Vokabeln.
    </body>
    </html>

  • #2
    Das Problem ist, dass die Zufallszahl bei jedem Scriptaufruf neu generiert wird. D.h. nach dem Absenden vergleichst du nicht unbedingt mit der Variablen, die du dir zuvor hast ausgeben lassen.

    Die Lösung deines Problems könnte z.B. eine Sessionvariable sein, in der du die ermittelte Vokabel zwischenspeicherst.

    Zum Thema Session kannst du dich z.B. hier einlesen: http://www.selfphp.de/praxisbuch/pra...h.php?group=35.
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Zuerst mal vielen dank für die schnelle Hilfe. Ich hab mich in die Sessionsachen mal einwenig eingearbeitet und dementsprechend meinen code geändert. Leider funktioniert es immer noch nicht...

      PHP-Code:
      <html>
      <head>
      <title></title>
      <meta name="author" content="Hannes">
      <meta name="editor" content="html-editor phase 5">
      </head>
      <body text="#000000" bgcolor="orange" link="navy" alink="navy" vlink="navy">

      <font size="+6" color="navy">Vokabeltrainer 1.0.0
      </font>    <p> <p><p><p><p>
      <font size="+2" color="navy">Deutsch-Spanisch
      </font>  <p><p><p><p>
      <?php
      session_start
      ();
      $_SESSION['zufall'] = rand(0,4);
      $deutsch = array(
      "spielen",
      "gehen",
      "machen",
      "bestellen",
      "dienen",
      );

      $spanisch = array(
      "jugar",
      "ir",
      "hacer",
      "pedir",
      "servir",
      );

      $vokabel_anzahl count($deutsch);
      echo 
      $deutsch[$_SESSION['zufall']];
      ?>
      <font color="orange">
      <?php
      echo $spanisch[$_SESSION['zufall']];
      ?>     </font>
       <form method="post">
       <input name="spanisch">
       <input type="submit" value="OK"> </form>
       <?php
       $spa 
      $_POST['spanisch'];


       if(
      $spanisch[$_SESSION['zufall']] == $spa)


       echo 
      "Richtig";



       else echo 
      "Falsch";

          
      ?>

         <p>
          <p>
         Der Vokabeltrainer besitzt momentan<strong> <?php  echo $vokabel_anzahl?></strong> Vokabeln.
      </body>
      </html>

      Kommentar


      • #4
        Hi,

        zunächst mal ein Hinweis, den jeder irgendwann einsehen muss:
        Leider funktioniert es immer noch nicht...
        ...ist keine sinnvolle Problembeschreibung.

        Schreibe mal
        Code:
        <?php
        error_reporting(E_ALL | E_STRICT);
        an den Anfang deiner Datei und korrigiere die Fehler, die dir angezeigt werden.
        [URL]http://hallophp.de[/URL]

        Kommentar


        • #5
          So vielen dank. Ich hab mich jetzt mal rangesetzt und lange versucht die Fehler zu beheben(was mir zum größtenteil auch gelungen ist), aber ich habe noch einen Fehler:

          Notice: Undefined index: spanisch in C:\..........\beispiel.php on line 27

          Ich weiß nicht was hier undefiniert sein soll:

          PHP-Code:
           $spa $_POST['spanisch']; 
          da es sich ja auch das bezieht:

          PHP-Code:
          <input type="text" name="spanisch"

          Da ich neu mit sessions arbeite wäre ich froh wenn ihr mir mal anschauen könntet ob ich sie korrekt verwendet habe(es kommen keine Fehlermeldungen mehr:

          PHP-Code:
          session_start(); 
          $_SESSION['zufall'] = rand(0,4);
          echo 
          $deutsch[$_SESSION['zufall']];
          echo 
          $spanisch[$_SESSION['zufall']];    
           if(
          $spanisch[$_SESSION['zufall']] == $spa)
           echo 
          "Richtig";

           else echo 
          "Falsch"
          Schonmal vielen vielen dank ich hoffe ihr könt mir weiterhelfen.

          Kommentar


          • #6
            Code:
            $_POST['spanisch']
            ist erst definiert, nachdem das Formular abgesendet wurde. Du musst bei jedem Seitenaufruf zuvor prüfen, ob die Variable überhaupt existiert. Erst dann kannst du mit ihr weiterarbeiten. Dazu hatten wir hier im Forum haufenweise Themen. Da kannst du dich ja mal durchgraben. Google: variable auf existenz prüfen site:php.de
            [URL]http://hallophp.de[/URL]

            Kommentar


            • #7
              So ich hab mich nun durchgelesen und komme aber immer noch nicht auf einen grünen Zweig:

              Notice: Undefined index: spanisch in C:\..........\beispiel.php on line 29

              Vielen dank für eure Geduld und die Tipps. Villeicht könnt ihr mir noch einen Tipp geben.

              Anbei der Code mit Kommentaren Versehen:

              PHP-Code:
              <?php
              session_start
              ();

              ?>
               <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
              <html>
              <head>
              <title></title>
              <meta name="author" content="Hannes">
              <meta name="editor" content="html-editor phase 5">
              </head>
              <body text="#000000" bgcolor="orange" link="navy" alink="navy" vlink="navy">




              <font size="+6" color="navy">Vokabeltrainer 1.0.0
              </font>    <p> <p><p><p><p>
              <font size="+2" color="navy">Deutsch-Spanisch
              <form method="post">
               <input type="text" name="spanisch">
               <input type="submit" value="OK"> </form>
              </font>  <p><p><p><p>
              <?php

              // Php Code
              error_reporting(E_ALL E_STRICT);
              // Wert für SPanisch wird angegeben//
               
              $spa $_POST['spanisch'];
               
              //WERT wird überprüft//
               
              if (!isset($spa)) {
               echo 
              "Kein gültiger Wert angegeben";
               }
               
              //Zufallszahl//
              $_SESSION['zufall'] = rand(0,4);
              //DEutsche Vokabeln//
              $deutsch = array(
              "spielen",
              "gehen",
              "machen",
              "bestellen",
              "dienen",
              );
               
              //Spanische Vokabeln//
              $spanisch = array(
              "jugar",
              "ir",
              "hacer",
              "pedir",
              "servir",
              );
              //Vokabelanzahl//
              $vokabel_anzahl count($deutsch);

              // ES wird die ZUFALLSTE Vokabel aus dem Array Ausgelesen    //
              echo $deutsch[$_SESSION['zufall']];

              // Hier das Selbe//


              echo $spanisch[$_SESSION['zufall']];



               
              //Überprüfung//

               
              if($spanisch[$_SESSION['zufall']] == $spa)

               echo 
              "Richtig";

               else echo 
              "Falsch";


                  
              ?>



                 <p>
                  <p>
                 Der Vokabeltrainer besitzt momentan<strong> <?php  echo $vokabel_anzahl?></strong> Vokabeln.
              </body>
              </html>

              Kommentar


              • #8
                Du prüfst die falsche Variable!

                PHP-Code:
                // ...

                if (!isset($_POST['spanisch'])) {
                  echo 
                "Kein gültiger Wert angegeben";

                  
                $spa '';

                else {
                  
                $spa $_POST['spanisch'];
                }

                // ... 
                [URL]http://hallophp.de[/URL]

                Kommentar


                • #9
                  super danke die Fehlermeldung ist nun weg
                  Ich habe aber nun immer noch das Problem welches ich schon anfangs hatte:
                  Das Problem ist das er wenn ich auf ok drücke immer die Vokabel welche folgt vergleicht. Du hast mir da ja den Tipp mit den Sessions gegeben, welchen ich ja umgesetzt habe aber es klappt leider immer noch nicht.

                  VIELEN VIELEN DANK FÜR DIE GELDULD

                  DU bist echt klasse.

                  Kommentar


                  • #10
                    Du hast immer noch einen Logikfehler im Script. Du setzt die Sessionvariable vor dem Vergleich, also wird diese auch bei jedem Aufruf überschrieben, bevor sie mit der Usereingabe verglichen wird.
                    [URL]http://hallophp.de[/URL]

                    Kommentar


                    • #11
                      JUHU

                      Danke du bist der BESTE

                      Kommentar


                      • #12
                        Magst du dann noch die Lösung posten? Dann ist dieses Thema vollständig und für Suchende nach dir von größerem Wert.
                        [URL]http://hallophp.de[/URL]

                        Kommentar


                        • #13
                          Klar

                          PHP-Code:
                          <?php
                          session_start
                          ();

                          ?>
                           <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
                          <html>
                          <head>
                          <title></title>
                          <meta name="author" content="Hannes">
                          <meta name="editor" content="html-editor phase 5">
                          </head>
                          <body text="#000000" bgcolor="orange" link="navy" alink="navy" vlink="navy">




                          <font size="+6" color="navy">Vokabeltrainer 1.0.0
                          </font>    <p> <p><p><p><p>
                          <font size="+2" color="navy">Deutsch-Spanisch
                          <form method="post">
                           <input type="text" name="spanisch">
                           <input type="submit" value="OK"> </form>
                          </font>  <p><p><p><p>
                          <?php

                          // Php Code
                          error_reporting(E_ALL E_STRICT);
                          // Wert für SPanisch wird angegeben//

                           //WERT wird überprüft//
                          if (!isset($_POST['spanisch'])) {
                            echo 
                          "Kein gültiger Wert angegeben";

                            
                          $spa '';
                          }
                          else {
                            
                          $spa $_POST['spanisch'];
                          }
                           
                          //Zufallszahl//

                          //DEutsche Vokabeln//
                          $deutsch = array(
                          "spielen",
                          "gehen",
                          "machen",
                          "bestellen",
                          "dienen",
                          );
                           
                          //Spanische Vokabeln//
                          $spanisch = array(
                          "jugar",
                          "ir",
                          "hacer",
                          "pedir",
                          "servir",
                          );
                          //Vokabelanzahl//
                          $vokabel_anzahl count($deutsch);

                          // ES wird die ZUFALLSTE Vokabel aus dem Array Ausgelesen    //


                          // Hier das Selbe//






                           //Überprüfung//
                           
                          if($spanisch[$_SESSION['zufall']] == $spa)

                           echo 
                          "Richtig";

                           else echo 
                          "Falsch";

                          $_SESSION['zufall'] = rand(0,4);
                          ?>
                          <font color="red">
                          <p></p>
                           <php
                             echo $spanisch[$_SESSION['zufall']];


                              ?>      </font>
                              <p></p>
                            <font color="white">
                            <?php
                              
                          echo $deutsch[$_SESSION['zufall']];
                              
                          ?>
                              </font>



                             <p>
                              <p>
                             Der Vokabeltrainer besitzt momentan<strong> <?php  echo $vokabel_anzahl?></strong> Vokabeln.
                          </body>
                          </html>

                          Kommentar


                          • #14
                            Ganz fehlerfrei ist der Code aber noch nicht. Wenn die Sessionvariable
                            Code:
                            $_SESSION['zufall']
                            nicht gesetzt ist, bekommst du wieder eine Fehlermeldung angezeigt.

                            Daher solltest du
                            PHP-Code:
                            //Überprüfung//
                             
                            if($spanisch[$_SESSION['zufall']] == $spa
                            in
                            PHP-Code:
                            //Überprüfung//
                             
                            if(isset($_SESSION['zufall']) && $spanisch[$_SESSION['zufall']] == $spa
                            ändern.

                            Gruß
                            [URL]http://hallophp.de[/URL]

                            Kommentar


                            • #15
                              Ich bins wieder

                              Hallo Leute.
                              Ich bins wieder. Und zwar würde mich interessieren wie ich es machen kann, dass nicht andauernd die selben vokabeln abgefragt werden und manche gar nicht.
                              Könnt ihr mir bitte wieder auf die Sprünge helfen

                              glg

                              Verci

                              Kommentar

                              Lädt...
                              X