Ausgearbeitet von Fabian und Paul
Schreiben Sie ein PHP-Script, welches 3 Strings über die $_POST-Variable einliest. Die 3 Strings werden danach in eine Variable zusammengefügt, wobei die Werte jeweils durch 2 Leerzeichen getrennt werden. Diese Variable wird danach als zentrierte H2-Überschrift in HTML ausgegeben. Parameter (Variablennamen, Schlüsselwerte, …) die nicht angegeben sind können frei gewählt werden.
<?php
$string1 = $_POST["string1"];
$string2 = $_POST["string2"];
$string3 = $_POST["string3"];
$merged = $string1 . " " . $string2 . " " . $string3;
?>
<html>
<h2 style= "text-align: center;">
<?= htmlspecialchars($merged) ?>
</h2>
<form method = "POST">
<input type = "text" name = "string1" placeholder = "string1"> <br><br>
<input type = "text" name = "string2" placeholder = "string2"> <br><br>
<input type = "text" name = "string3" placeholder = "string3"> <br><br>
<button type = "submit" name = "submit">Submit</button>
</form>
</html>
Schreiben Sie ein PHP-Programm, welches die Zahlen von 1 bis 10 in ein assoziatives Array mit den Keywörtern „eins“ bis „zehn“ schreibt. Verwenden Sie dazu ein Schleifenkonstrukt.
<?php
$wörter = ["eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn"];
$array = [];
for($i = 0; $i < 10; $i++)
{
$array[$wörter[$i]] = $i + 1;
echo $array[$wörter[$i]];
}
foreach($wörter as $index => $wort)
{
$array[$wort] = $index + 1;
echo $array[$wort];
}
?>
Schreiben Sie einen HTML-Code, welcher die unten dargestellte Ausgabe erzeugt. Das Formular soll durch das PHP-Script „form.php“ verarbeitet und mit der Methode „get“ übertragen werden.
<html>
<h2>Formular:</h2>
<form method = "GET" action = "/fsst/form.php">
<table>
<tr>
<td>Name:</td>
<td><input type = "text" name = "name"></td>
</tr>
<tr>
<td>Farbe:</td>
<td><select name = "farbe">
<option value = "empty">-</option>
<option value = "rot">rot</option>
<option value = "gruen">grün</option>
<option value = "blau">blau</option>
</select>
<button type = "submit" name = "submit">OK</button>
</td>
</tr>
</table>
</form>
</html>
Schreiben Sie ein PHP-Programm, welches aus einer Tabelle „personal“ in der Datenbank „erm“ den Namen und das Geschlecht der 4ten Zeile ausgibt. Die Datenbank läuft auf dem Server „data.local“ und man kann mit dem User „dba“ mit dem Passwort „dbapw“ darauf zugreifen.

<?php
$conn = mysqli_connect("localhost", "FSST", "password", "Testing");
// $conn = mysqli_connect("data.local", "dba", "dbapw", "erm");
$content = mysqli_query($conn, "SELECT name, geschlecht from mitarbeiter where personalnr = 400003");
$result = mysqli_fetch_assoc($content);
echo "Name: " . $result["name"];
echo "<br>";
echo "Geschlecht: " . $result["geschlecht"];
?>
Schreiben Sie ein PHP-Programm, welches in einem Unterprogramm 2 Arrays vergleicht und im Falle von Gleichheit in ein assoziatives Array, welches als Schlüssel einen Zeitstempel hat, den Wert „OK“ speichert. Die beiden Arrays werden der Unterfunktion übergeben und müssen in Länge und Inhalt übereinstimmen. Ergänzen Sie das Unterprogramm mit Testwerten und Funktionsaufruf zu einem funktionierenden Programm.
<?php
$array1 = ["Fabian", "Paul", "Schieder", "Eisenbock"];
$array2 = ["Fabian", "Paul", "Schieder", "Eisenbock"];
function arraycomp($array1, $array2)
{
$check = [];
if($array1 === $array2)
{
$check[time()] = "OK";
}
return $check;
}
$result = arraycomp($array1, $array2);
print_r($result);
?>
Schreiben Sie einen HTML-Code, welcher die unten dargestellte Ausgabe erzeugt. Das Formular soll durch das PHP-Script „anmeldung.php“ verarbeitet und mit der Methode „post“ übertragen werden.

<html>
<body>
<h2>Please Log in!!!</h2>
<form method = "POST" action = "anmeldung.php">
<table>
<tr>
<td>Username: </td>
<td><input type = "text" name = "user"></td>
</tr>
<tr>
<td>Password: </td>
<td><input type = "password" name = "password"></td>
</tr>
<tr>
<td>Rolle: </td>
<td><select name = "role" default = "student">
<option value = "admin">admin</option>
<option value = "teacher">teacher</option>
<option value = "student">student</option>
<option value = "guest">guest</option>
</select>
</td>
</tr>
</table>
<button type = "submit" name = "submit">GO!!!</button>
</form>
> <body>
{.is-danger}
<html>
Selfmade (Kein Testbeispiel)
<html>
<body>
<h2>Anmeldung</h2>
<form method = "POST" action = "login.php">
<table>
<tr>
<td>Benutzername: </td>
<td><input type = "text" name = "user"></td>
</tr>
<tr>
<td>Passwort: </td>
<td><input type = "password" name = "password"></td>
</tr>
</table>
<button type = "submit" name = "submit">Anmelden</button>
</form>
<h2>Registrierung</h2>
<form method = "POST" action = "register.php">
<table>
<tr>
<td>Benutzername: </td>
<td><input type = "text" name = "user"></td>
</tr>
<tr>
<td>Passwort: </td>
<td><input type = "password" name = "password"></td>
</tr>
</table>
<button type = "submit" name = "submit">Registrieren</button>
</form>
</body>
</html>
<?php
$conn = mysqli_connect("localhost", "FSST", "password", "Testing");
if(!$conn)
{
die("Fehler");
}
$content = mysqli_query($conn, "SELECT * FROM user");
$row;
while($row = mysqli_fetch_assoc($content))
{
if($row["name"] === $_POST["user"] && $row["password"] === $_POST["password"])
{
echo "Geil gemacht!";
}
}
?>
<?php
$conn = mysqli_connect("localhost", "FSST", "password", "Testing");
$name = $_POST["user"];
$password = $_POST["password"];
$content = mysqli_query($conn, "INSERT INTO user (name, password) VALUES ('$name', '$password')");
echo "Erfolgreich registriert!";
?>
Schreiben Sie ein PHP-Programm, welches aus den Tabellen Benotung(Nr, Name, Gst, Note) und Gegenstand(Nr, GstName) den Namen, die Note und den Gegenstand aller Schüler, die mit „S“ beginnen, ausgibt. Erzeugen Sie eine HTML-Tabellenausgabe. Die Datenbank liegt auf dem Server „db.intra“ und nur der Zugriff des Users „dba“ ist freigeschaltet. Der User hat das Passwort „1234“ und die Tabellen sind in der Datenbank „benotungen“ gespeichert. Die beiden Tabellen Benotung und Gegenstand sind mit dem Fremdschlüssel Gst verbunden.


<?php
$conn = mysqli_connect("localhost", "FSST", "password", "Testing");
// $conn = mysqli_connect("db.intra", "dba", "1234", "benotungen");
$content = mysqli_query($conn, "SELECT name, note, Gegenstand.GstName
from Benotung
join Gegenstand on Gegenstand.nr = Benotung.Gst
where name like 'S%'");
?>
<html>
<table>
<thead>
<tr>
<th>Name</th>
<th>Note</th>
<th>Gegenstand</th>
</tr>
</thead>
<tbody>
<?php while($row = mysqli_fetch_assoc($content)) { ?>
<tr>
<td><?= htmlspecialchars($row["name"]) ?></td>
<td><?= htmlspecialchars($row["note"]) ?></td>
<td><?= htmlspecialchars($row["GstName"]) ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</html>
Schreiben Sie ein PHP Programm, welches das Hinzufügen von TODOs in eine Datenbank TODO(id, title, description, is_done, created_at) ermöglicht und alle TODOs in einer Tabelle ausgibt.
<?php
$conn = mysqli_connect("localhost", "FSST", "password", "Testing");
$content = mysqli_query($conn, "SELECT title, description, created_at FROM todos");
if(isset($_POST["submit"]))
{
$title = $_POST["title"];
$description = $_POST["description"];
mysqli_query($conn, "INSERT INTO todos(title, description, created_at) VALUES('$title', '$description', CURRENT_TIMESTAMP)");
}
?>
<html>
<h1> TODO - Liste </h1>
<h2> Hinzufuegen </h2>
<form method = "POST">
<label>Titel: </label>
<input type = "text" name = "title" placeholder = "Titel"> <br>
<label>Beschreibung: </label>
<input type = "text" name = "description" placeholder = "Beschreibung"> <br>
<button type = "submit" name = "submit">Hinzufuegen</button>
</form>
<br><br>
<table>
<thead>
<th>Titel</th>
<th>Beschreibung</th>
<th>Erstellt</th>
</thead>
<tbody>
<?php while($row = mysqli_fetch_assoc($content)) { ?>
<tr>
<td><?= htmlspecialchars($row["title"]) ?></td>
<td><?= htmlspecialchars($row["description"]) ?></td>
<td><?= htmlspecialchars($row["created_at"]) ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</html>
Gegeben ist ein Array $temperaturen = [12, 15, -2, 5, -8, 22];. Schreiben Sie ein PHP-Skript mit einer Schleife, das dieses Array durchläuft. Alle positiven Temperaturen (größer als 0) sollen in ein neues Array $plus_grade geschrieben werden. Geben Sie am Ende aus, wie viele positive Werte gefunden wurden (Tipp: Nutzen Sie eine Zähler-Variable oder eine PHP-Array-Funktion).
<?php
$temperaturen = [12, 15, -2, 5, -8, 22];
$plus_grade = [];
foreach($temperaturen as $temp)
{
if($temp > 0)
{
$plus_grade[] = $temp;
}
}
$counter = count($plus_grade);
echo "Positive Werte: $counter"
?>
Schreiben Sie ein PHP-Skript inklusive HTML-Formular. Das Formular fragt nach einem "Benutzernamen" und einem "Neuen Passwort" (Method: POST). Wenn das Formular abgeschickt wurde, soll das Passwort dieses Benutzers in der Tabelle user der Datenbank aktualisiert werden. Gibt der User einen leeren String als Passwort ein, geben Sie "Passwort darf nicht leer sein" aus, ansonsten führen Sie den SQL-Befehl aus und geben "Passwort geändert" aus.
<?php
$conn = mysqli_connect("localhost", "FSST", "password", "Testing");
if(isset($_POST["submit"]))
{
$user = $_POST["user"];
$password = $_POST["password"];
if(empty($password))
{
echo "Passwort darf nicht leer sein!";
}
else
{
mysqli_query($conn, "UPDATE user SET password = '$password' WHERE name = '$user'");
}
}
?>
<html>
<form method = "POST">
<table>
<tr>
<td>Benutzername: </td>
<td><input type = "text" name = "user"></td>
</tr>
<tr>
<td>Neues Passwort: </td>
<td><input type = "password" name = "password"></td>
</tr>
</table>
<button type = "submit" name = "submit">Passwort ändern</button>
</form>
</html>
Schreibe ein PHP-Programm, welches ein assoziatives Array mit den Wochentagen als Schlüssel und Temperaturwerten als Values erzeugt und gib danach den Wert vom „Sonntag“ zentriert in HTML aus.
<?php
$array = ["Montag" => 20, "Dienstag" => 21, "Sonntag" => 22];
?>
<html>
<p style = "text-align: center"><?= htmlspecialchars($array["Sonntag"]) ?></p>
</html>