Ankündigung

Einklappen
Keine Ankündigung bisher.

Zahl-raten Fehler im Script/Script unfertig

Einklappen

Neue Werbung 2019

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

  • Zahl-raten Fehler im Script/Script unfertig

    Hallo Community !

    Ich bin ein absoluter Anfänger, und habe als erstes ein Script geschrieben (ein kleines Ratespielchen)

    gewollte Funktion:

    User hat 10 Versuche eine Zufallszahl zu erraten, und grenzt mit jeder Ausgabe des Scripts :"gesuchte Zahl ist größer / kleiner" die Zahl ab.

    Zahl = 1 - 100

    Problem:

    Mit welchem mitteln die 10 Versuche programmieren ?
    schleife, extrerne datei ?
    wichtig:

    PHP-Code:
    if(isset($_POST["vorschlag"])){
    $zahl $_POST["vorschlag"]; 
    sollte schon funktionieren, also nur schleife fällt wohl aus.
    Versuche schon so denken wie der PHP-INTERPRETER nur im Moment qualmt mir der Kopf



    P.s die Anzeige der zufallszahl ist vorrerst gewollt - zwecks debugging.

    Ich hoffe auf einen GEDANKENSPRUNG Eurerseits
    Dachte da an eine Funktion bzw. extern, oder globale variable ??



    PHP-Code:
    <?php
    if(isset($_POST["vorschlag"])){
    $zahl $_POST["vorschlag"];

    echo
    "<form action='ratezahl.php' method='post'>";
    echo
    "<input type='text' name='vorschlag' value='$zahl' size='2'>";
    echo
    "<input type='submit' name'Send' value='denk ich !'>";

    srand(microtime()*1000000);
         
    $zufall rand(1,100);

    echo
    "<br>";
    echo
    "Gesuchte Zahl: $zufall";
    echo
    "<br>";
    echo
    "Deine Zahl: $zahl";
    echo
    "<br>";
    $versuche=10;

    if(
    $zahl>$zufall){
        echo
    "Die gesuchte zahl ist kleiner ... ";
        echo
    "Du hast noch $versuche Versuche !";
    }
    elseif(
    $zahl<$zufall){
        echo
    "Die gesuchte Zahl ist größer ... ";
        echo
    "Du hast noch $versuche Versuche !";
    }
    elseif(
    $zahl == $zufall){
        echo
    "Richtig ";
        echo
    "Du hättest noch $versuche Versuche !";
    }
    }
    else{

    echo
    "Geben Sie eine Zahl von 1 - 100,";
    echo
    "<form action='ratezahl.php' method='post'>";
    echo
    "<input type='text' name='vorschlag' size='2'>";
    echo
    "<input type='submit' name'Send' value='denk ich !'>";
    }
    ?>

  • #2
    Das ist ganz einfach:
    PHP-Code:
    echo"<input type='text' name='vorschlag' value='" .$_POST['vorschlag']. "' size='2'>"
    Bitte benutze zukünftig [php] bbTags für Deine Codepostings

    Kommentar


    • #3
      Du willst also dass die Zahl die zu erraten ist bestehen bleibt und nicht jedes mal neu, zufällig erstellt wird?

      Dann musst du dich mit Sessions auseinander setzen. Man könnte die Variable zwar im Formular als "hidden" Feld übergeben, damit könnte der Benutzer aber im HTML Quelltext nachschauen und die Zahl finden.

      Also brauchst du Sessions, diese Speichern so gesehen deine Werte auf dem Server und können bei einem neuen Aufruf einer Datei wieder verwendet werden.

      Du benötigst also am Anfang der Datei ein session_start(); (muss gleich in die erste Zeile bevor jegliche Ausgabe an den Browser gesendet wird).

      Und im Skript, wenn du die zufällige Zahl generierst kannst du diese eben in der Session speichern. Die Session ist ansich nur ein Array.
      PHP-Code:
      $_SESSION['zufallszahl'] = $zufall
      Und um die Zahl dann, nachdem das Formular abgeschickt wurde, wieder auszulesen kannst du eben mit $_SESSION['zufallszahl'] wieder darauf zugreifen.

      Kommentar


      • #4
        Das ist zwar logisch, aber nicht das was ich herausgelesen habe:
        allerdings möchte ich immer daß die letzte eingegeben Zahl in dem Texteingabefenster schon bleibt.

        Kommentar


        • #5
          Zitat von Flor1an Beitrag anzeigen
          Du willst also dass die Zahl die zu erraten ist bestehen bleibt und nicht jedes mal neu, zufällig erstellt wird?

          Dann musst du dich mit Sessions auseinander setzen. Man könnte die Variable zwar im Formular als "hidden" Feld übergeben, damit könnte der Benutzer aber im HTML Quelltext nachschauen und die Zahl finden.

          Also brauchst du Sessions, diese Speichern so gesehen deine Werte auf dem Server und können bei einem neuen Aufruf einer Datei wieder verwendet werden.

          Du benötigst also am Anfang der Datei ein session_start(); (muss gleich in die erste Zeile bevor jegliche Ausgabe an den Browser gesendet wird).

          Und im Skript, wenn du die zufällige Zahl generierst kannst du diese eben in der Session speichern. Die Session ist ansich nur ein Array.
          PHP-Code:
          $_SESSION['zufallszahl'] = $zufall
          Und um die Zahl dann, nachdem das Formular abgeschickt wurde, wieder auszulesen kannst du eben mit $_SESSION['zufallszahl'] wieder darauf zugreifen.

          Ohh Session - danke ! - werd ich ausprobieren.


          hab mich am Anfang des POST etwas komisch ausgedrückt :

          Problem:

          Mit welchem mitteln die 10 Versuche programmieren ?
          schleife, extrerne datei ?
          wichtig:

          PHP-Code:
          if(isset($_POST["vorschlag"])){
          $zahl $_POST["vorschlag"]; 
          sollte schon funktionieren, also nur schleife fällt wohl aus.
          Versuche schon so denken wie der PHP-INTERPRETER nur im Moment qualmt mir der Kopf

          Kommentar


          • #6
            Das tut sie ja jetzt schon was du beschrieben hast.

            PHP-Code:
            echo"<input type='text' name='vorschlag' value='$zahl' size='2'>"
            Dann kanns das doch nicht sein oder?


            Achso die 10 Versuche, genauso wie die Zufallszahl in die Session speichern.

            PHP-Code:
            $_SESSION['versuche'] = 0// wenn die Zufallszahl erstellt wird

            if ($_SESSION['versuche'] >= 9// überprüfen ob die Versuche aufgebraucht sind

            $_SESSION['versuche']++; // Versuch erhöhen wenn eine Zahl eingegeben wurde 
            Damit könntest du das umsetzen.

            Kommentar


            • #7
              Der Zähler für die 10 Versuche kommt gleich mit in die Session. Seitenübergreifende Schleifen o.ä. sind nicht möglich. Du mußt die Seite eben immer wieder aufrufen durch Angabe im actio n Attribut des Forms und dabei nen Zähler inkrementieren.

              [edit]
              Oh peinlich, ich Dämlack. Hatte zu schnell gelesen und ein Affenformular vermutet. Da sind ja zwei "Form's".

              Kommentar


              • #8
                Super danke für die schnelle Antwort.
                Wie gesagt fange grad mit php an, und freue mich über so eine schnelle und kompetente Antwort.

                So merkt man eine gute/aktive Community *schleim :wink:

                Gruß Freaky

                Kommentar


                • #9
                  Wenn man Sessions vermeiden will, dann kann man die zufällig erzeugte Zahl auch in eine MySql-Tabelle oder eine Datei schreiben und von dort immer wieder einlesen.

                  Kommentar


                  • #10
                    Wenn man Sessions vermeiden will, dann kann man die zufällig erzeugte Zahl auch in eine MySql-Tabelle oder eine Datei schreiben und von dort immer wieder einlesen.
                    Ja. Wenn genau 1 Person das Rätselscript benutzt...

                    Kommentar

                    Lädt...
                    X