Antworten auf deine Fragen:
Neues Thema erstellen

Galgenmännchen Fehlersuche

W

WeihnachtsmannSek

Guest

Hallo,
habe vor kurzem angefangen php mit hilfe von Büchern zu erlernen.
Daher bin ich noch nicht so weit und mir passieren natürlich die döofsten Fehler. Als bitte nicht so hart mit mir sein ;)

Ich habe hier einen Auszug aus einem php-Skript mit dem ich teste anwelcher Position sich ein Buchstabe befindet und ob er überhaupt vorhanden ist. Ihr kennt ja alle Galgenmännchen noch aus der Schule. Es soll genauso funktionieren. Beim ersten Aufruf wir ein Wort eingegeben. Das Skript erkennt mit Hilfe strlen() die Länge des Wortes und gibt dann dementsprechend viele " _ "(Unterstriche) aus. Nun wird muss man immer einen Buchstaben eingeben der dann mit Hilfe von strpos() im Wort gesucht wird. Nund kommt das knifflige, den Buchstaben auch an der richtigen Position für den User auszugeben und falls der Buchstaben nicht im Wort ist eine "wachsenden" Hangman-Grafik auszugeben.
Um den Buchstaben an der richtigen Stelle auszugeben benutze ich ein for-Schleife in der Wiederrum ziemlich viele if Abfragen vorhanden sind. Soweit so gut funktioniert das Skript bis auf die Tatsache das nach der zweiten Buchstaben eingabe auch nur noch die Richtigen Buchstaben ausgegeben werden und nicht die " _ "(Unterstriche). Ich habe gesucht und gesucht und finde den Fehler nicht. Vielleicht könnt Ihr mir ja helfen.
Vielen Dank schon mal im vorraus.

P.S.: $pos = Position und $bs = Buchstabe

PHP:
        <?php

            $fehler = 0;

            $bilder = array("","<img src='Bilder/Galgen_1.jpg'>","<img src='Bilder/Galgen_2.jpg'>","<img src='Bilder/Galgen_3.jpg'>","<img src='Bilder/Galgen_4.jpg'>","<img src='Bilder/Galgen_5.jpg'>","<img src='Bilder/Galgen_6.jpg'>","<img src='Bilder/Galgen_7.jpg'>","<img src='Bilder/Galgen_7.jpg'>");
                
/*----------------------------------------------------------- 3.Buchstabe eingeben --------------------------------------------------------------------------------------------------------------------------------*/
            if(isset($_POST["bs2"])) {

                $bs1 = $_POST["bs1"];

                $pos1 = $_POST["pos1"];
                
                $fehler = $_POST["fehler"];

                $bs2 = $_POST["bs2"];

                $wort = $_POST["wort"];
                
                if(strpos($wort, $bs2)) {
                    $pos2 = strpos($wort, $bs2);
                    echo "$pos2<br />";                    
                }
                else {
                    $fehler++;
                }

                $laenge = strlen($wort);
                echo "$laenge";

                
                echo "<table height='100%' width='100%' border='0'>\n\n";
                    echo "<tr>\n";
                        echo "<td colspan='3' align='center'>\n";
                            echo "<h1>LOS GEHT´S</h1>\n";
                        echo "</td>\n";
                    echo "</tr>\n\n";

                    echo "<tr>\n";
                        echo "<td align='center' width='33,3%'>\n";
                            
                        echo "</td>\n\n";
                        echo "<td align='center' width='33,3%'>\n";
                            echo "<h1>";
                                for($i = 1; $i < $laenge; $i++) {
                                    if("$pos1 == $i" || "$pos2 == $i" || "$pos3 == $i" || "$pos4 == $i" || "$pos5 == $i" || "$pos6 == $i" || "$pos7 == $i" || "$pos8 == $i" || "$pos9 == $i" || "$pos10 == $i") {
                                        if(isset($pos1)) {
                                            if($i == $pos1) {
                                                echo "$bs1";
                                            }
                                        }
                                        if(isset($pos2)) {
                                            if($i == $pos2) {
                                                echo "$bs2";
                                            }
                                        }
                                        if(isset($pos3)) {
                                            if($i == $pos3) {
                                                echo "$bs3";
                                            }
                                        }
                                        if(isset($pos4)) {
                                            if($i == $pos4) {
                                                echo "$bs4";
                                            }
                                        }
                                        if(isset($pos5)) {
                                            if($i == $pos5) {
                                                echo "$bs5";
                                            }
                                        }
                                        if(isset($pos6)) {
                                            if($i == $pos6) {
                                                echo "$bs6";
                                            }
                                        }
                                        if(isset($pos7)) {
                                            if($i == $pos7) {
                                                echo "$bs7";
                                            }
                                        }
                                        if(isset($pos8)) {
                                            if($i == $pos8) {
                                                echo "$bs8";
                                            }
                                        }
                                        if(isset($pos9)) {
                                            if($i == $pos9) {
                                                echo "$bs9";
                                            }
                                        }
                                        if(isset($pos10)) {
                                            if($i == $pos10) {
                                                echo "$bs10";
                                            }
                                        }    
                                    }
                                    else {
                                        echo " _";
                                    }
                                }                                
                            echo "</h1>\n";
                        echo "</td>\n\n";
                        echo "<td align='center' width='33,3%'>\n";
                            echo $bilder[$fehler]. "\n";    
                        echo "</td>\n";
                    echo "</tr>\n\n";

                    echo "<tr>\n";
                        echo "<td colspan='3' align='center'>\n";
                            echo "<form action='test2.php' method='post'>\n";
                                echo "<input type='text' name='bs3' maxlength='1' size='1'>\n";
                                echo "<input type='hidden' name='wort' value='$wort'>\n";
                                echo "<input type='hidden' name='bs1' value='$bs1'>\n";
                                echo "<input type='hidden' name='pos1' value='$pos1'>\n";
                                echo "<input type='hidden' name='bs2' value='$bs2'>\n";
                                echo "<input type='hidden' name='pos2' value='$pos2'>\n";
                                echo "<input type='hidden' name='bs3' value='$bs3'>\n";
                                echo "<input type='hidden' name='pos3' value='$pos3'>\n";
                                echo "<input type='hidden' name='fehler' value='$fehler'>\n";
                                echo "<input type='submit' value='Prüfen'>\n";
                            echo "</from>";
                        echo "</td>\n";
                    echo "</tr>\n\n";
                
                echo "</table>";
            }

/*----------------------------------------------------------- 2.Buchstabe eingeben --------------------------------------------------------------------------------------------------------------------------------*/
            elseif(isset($_POST["bs1"])) {

                $bs1 = $_POST["bs1"];

                $wort = $_POST["wort"];

                $wort =  "?" . $wort;
                
                if(strpos($wort, $bs1)) {
                    $pos1 = strpos($wort, $bs1);                    
                }
                else {
                    $fehler++;
                }

                $laenge = strlen($wort);

                
                echo "<table height='100%' width='100%' border='0'>\n\n";
                    echo "<tr>\n";
                        echo "<td colspan='3' align='center'>\n";
                            echo "<h1>LOS GEHT´S</h1>\n";
                        echo "</td>\n";
                    echo "</tr>\n\n";

                    echo "<tr>\n";
                        echo "<td align='center' width='33,3%'>\n";
                            
                        echo "</td>\n\n";
                        echo "<td align='center' width='33,3%'>\n";
                            echo "<h1>";
                                for($i = 1; $i < $laenge; $i++) {
                                    if(isset($pos1)) {
                                        if($i == $pos1) {
                                            echo "$bs1";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos2)) {
                                        if($i == $pos2) {
                                            echo "$bs2";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos3)) {
                                        if($i == $pos3) {
                                            echo "$bs3";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos4)) {
                                        if($i == $pos4) {
                                            echo "$bs4";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos5)) {
                                        if($i == $pos5) {
                                            echo "$bs5";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos6)) {
                                        if($i == $pos6) {
                                            echo "$bs6";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos7)) {
                                        if($i == $pos7) {
                                            echo "$bs7";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos8)) {
                                        if($i == $pos8) {
                                            echo "$bs8";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos9)) {
                                        if($i == $pos9) {
                                            echo "$bs9";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    elseif(isset($pos10)) {
                                        if($i == $pos10) {
                                            echo "$bs10";
                                        }
                                        else {
                                            echo " _";
                                        }
                                    }
                                    else {
                                        echo " _";
                                    }
                                }
                            echo "</h1>\n";
                        echo "</td>\n\n";
                        echo "<td align='center' width='33,3%'>\n";
                            echo $bilder[$fehler]. "\n";    
                        echo "</td>\n";
                    echo "</tr>\n\n";

                    echo "<tr>\n";
                        echo "<td colspan='3' align='center'>\n";
                            echo "<form action='test2.php' method='post'>\n";
                                echo "<input type='text' name='bs2' maxlength='1' size='1'>\n";
                                echo "<input type='hidden' name='wort' value='$wort'>\n";
                                echo "<input type='hidden' name='bs1' value='$bs1'>\n";
                                echo "<input type='hidden' name='pos1' value='$pos1'>\n";
                                echo "<input type='hidden' name='fehler' value='$fehler'>\n";
                                echo "<input type='submit' value='Prüfen'>\n";
                            echo "</from>";
                        echo "</td>\n";
                    echo "</tr>\n\n";
                
                echo "</table>";
            }

/*----------------------------------------------------------- 1.Buchstabe eingeben --------------------------------------------------------------------------------------------------------------------------------*/
            elseif(isset($_POST["wort"])) {

                $wort = $_POST["wort"];

                $laenge = strlen($wort);

                
                echo "<table height='100%' width='100%' border='0'>\n\n";
                    echo "<tr>\n";
                        echo "<td align='center'>\n";
                            echo "<h1>LOS GEHT´S</h1>\n";
                        echo "</td>\n";
                    echo "</tr>\n\n";

                    echo "<tr>\n";
                        echo "<td align='center'>\n";
                            echo "<h1>";
                                for($i = 0; $i < $laenge; $i++) {
                                    echo " _";
                                }
                            echo "</h1>";
                        echo "</td>\n";
                    echo "</tr>\n\n";

                    echo "<tr>\n";
                        echo "<td align='center'>\n";
                            echo "<form action='test2.php' method='post'>\n";
                                echo "<input type='text' name='bs1' maxlength='1' size='1'>\n";
                                echo "<input type='hidden' name='wort' value='$wort'>\n";
                                echo "<input type='submit' value='Prüfen'>\n";
                            echo "</from>";
                        echo "</td>\n";
                    echo "</tr>\n\n";
                
                echo "</table>";
            }

/*----------------------------------------------------------- Startseite --------------------------------------------------------------------------------------------------------------------------------*/
            else {
                echo "<table height='100%' width='100%' border='0'>\n\n";
                    echo "<tr>\n";
                        echo "<td align='center'>\n";
                            echo "<h1>Galgenmännchen</h1>\n";
                        echo "</td>\n";
                    echo "</tr>\n\n";

                    echo "<tr>\n";
                        echo "<td align='center'>\n";
                            echo "<form action='test2.php' method='post'>\n";
                                echo "<input type='text' name='wort' maxlength='10' size='10'><br/>\n";
                                echo "<input type='submit' value='Spielen'>\n";
                            echo "</from>";
                        echo "</td>\n";
                    echo "</tr>\n\n";
                
                echo "</table>\n";
            }
        ?>
 

rodolfo4711

Nicht mehr ganz neu hier

AW: Galgenmännchen Fehlersuche

Hallo,

muss das statt
if(
"$pos1 == $i" || "$pos2 == $i" ||
nicht
if($pos1 == $i || $pos2 == $i ||
heissen?
 

stroyer

Aktives Mitglied

AW: Galgenmännchen Fehlersuche

rodolfo hat zwar recht, aber ich würde das ganze Skript neu schreiben.
Zumindest für mich ist das nicht die richtige Art an die Sache heranzugehen indem man alle Möglichkeiten codet. Wenn man den 2. oder den 3. Buchstaben eintippt, hat das viele Gemeinsamkeiten. Ich würde gar nicht verwenden dass gezählt wird der wievielte Buchstabe es ist. Weiters kann es leichter sein das ganze auch mit Sessions anzugehen.

Aber trotzdem eine gute Leistung bisher.
 
W

WeihnachtsmannSek

Guest

AW: Galgenmännchen Fehlersuche

Vielen Dank rodolfo4711!
Jetzt funktioniert und ich kann das Skript zu Ende schreiben.

An srtoyer: Wie gesagt ich bin Anfänger ;) Und ich werde gerne später mal versuchen das noch auf eine andere Möglichkeit zu realisieren, aber bisher gibt mein Kopf nicht mehr her :D

Gruß und danke nochmal!
 

FlashSoft

Besserwisser

AW: Galgenmännchen Fehlersuche

@WeihnachtsmannSek
Hoffe du stellst dein Glagenmännchen mal vor, wenn es fertig ist. Habe selbst mal nen Galgenmännchen gemacht und ist (FlashDatei) zu finden.

FlashSoft
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben