Navigation überspringen

Übungen

Loginmaske

Erzeugen Sie ein Formular, mit dem ein Login durchgeführt werden soll. Beachten Sie dabei, dass neben dem Benutzernamen ein unlesbares Passwortfeld verwendet werden soll. 

Kopfrechner

Gegeben ist ihnen folgender Quelltext (Fragen/Aufgaben befinden sich unterhalb des Quelltextes):

<?php
$ergebnisVorhanden = false;
if (isset($_POST['pruefen'])) {
    //Auslesen der übergebenen Werte, sobald Formular betätigt wird
    $operatorenListeAusgelesen = explode(",", $_POST['operatorenListe']);
    $wertEinsArrayAusgelesen = explode(",", $_POST['werteEinsString']);
    $wertZweiArrayAusgelesen = explode(",", $_POST['werteZweiString']);
    $anzahlErgebnisseGesamt = count($operatorenListeAusgelesen);
    $anzahlRichtigerErgebnisse = 0;
    for ($iErgebnis = 0; $iErgebnis < count($operatorenListeAusgelesen); $iErgebnis++) {
        $ergbnisTemporaer = $_POST['ergebnis' . $iErgebnis];
        switch ($operatorenListeAusgelesen[$iErgebnis]) {
            case "%":
                $ergebnis = $wertEinsArrayAusgelesen[$iErgebnis] % $wertZweiArrayAusgelesen[$iErgebnis];
                break;
            case "*":
                $ergebnis = $wertEinsArrayAusgelesen[$iErgebnis] * $wertZweiArrayAusgelesen[$iErgebnis];
                break;
            case "-":
                $ergebnis = $wertEinsArrayAusgelesen[$iErgebnis] - $wertZweiArrayAusgelesen[$iErgebnis];
                break;
            case "+":
                $ergebnis = $wertEinsArrayAusgelesen[$iErgebnis] + $wertZweiArrayAusgelesen[$iErgebnis];
                break;
            default:
                $ergebnis = "NaN";
        }
        if ($ergbnisTemporaer == $ergebnis) {
            $anzahlRichtigerErgebnisse++;
        }
    }
    $ergebnisVorhanden = true;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Kopfrechnen</title>
        <meta charset="ISO-8859-1">
    </head>
    <body>
        <form method="POST" name="KopfrechnenFormular" action="#">
            <table>
                
                <b>Kopfrechner</b>
                
                <?php
                $operatorenListe = array("%", "*", "-", "+");
                $wertEinsArray = array();
                $wertZweiArray = array();
                for ($i = 0; $i < count($operatorenListe); $i++) {
                    echo "<tr>";
                    $a = $i + 1;
                    echo "<td>";
                    echo "Aufgabe " . $a . ": ";
                    echo "</td>";
                    $wertEinsArray[$i] = rand(1, 20);
                    $wertZweiArray[$i] = rand(1, 20);
                    echo "<td>";
                    echo $wertEinsArray[$i] . " " . $operatorenListe[$i] . " " . $wertZweiArray[$i];
                    echo "</td>";
                    echo "<td>";
                    echo " = ";
                    echo "</td>";
                    echo "<td>";
                    echo "<input type='text' name='ergebnis" . $i . "'>";
                    echo "</td>";
                    echo "</tr>";
                }
                echo "<input name='operatorenListe' type='hidden' value='" . implode(",", $operatorenListe) . "'>";
                echo "<input name='werteEinsString' type='hidden' value='" . implode(",", $wertEinsArray) . "'>";
                echo "<input name='werteZweiString' type='hidden' value='" . implode(",", $wertZweiArray) . "'>";
                ?>
                <tr>
                    <td colspan="4">
                        <input type="submit" value="Ergebnisse pr&uuml;fen" name="pruefen">
                    </td>
                </tr>
                <?php
                if (isset($_POST['pruefen'])) {
                    ?>
                    <tr>
                        <td colspan="4">
                            <b>
                                Sie haben 
                                <?php
                                if (isset($_POST['pruefen'])) {
                                    echo " " . $anzahlRichtigerErgebnisse . " von " . $anzahlErgebnisseGesamt . " ";
                                }
                                ?>
                                Ergebnissen richtig. 
                            </b>
                        </td>
                    </tr>
                    <?php
                }
                ?>
            </table>
        </form>
    </body>
</html>

Aufgaben: Kopieren sie den Quelltext in netbeans IDE, um die Aufgaben bearbeiten zu können. Beantworten Sire die Fragen bitte schriftlich.

  1. Erläutern Sie die Zeile 5 und die Zeile 70.
  2. Wie unterscheiden sich die Befehle explode und implode.
  3. Wie gehören die Zeilen 5 und 70 zusammen und warum wird in Zeile 70 mit dem Formularfeld "hidden" gearbeitet?
  4. Erläutern sie exakt den Ausdruck in Zeile 70 value='" . implode(",", $operatorenListe) . "'
  5. Erläutern sie die Mehrfachverzweigung switch-case in den Zeilen 12 bis 27
  6. Beschreiben sie, was in Zeile 28 bis 30 passiert und wozu dieser Wert später nochmals verwendet wird.

Sprungaufgabe 1

Erzeugen sie einen Quelltext in ausschließlich PHP und HTML, der folgende Ausgabe erzeugt:

Sprungaufgabe 2

Es wird etwas schwieriger!

Erzeugen sie einen Quelltext in ausschließlich PHP und HTML, der folgende Ausgabe erzeugt: