Add uebung8
This commit is contained in:
58
uebung8/examples/index.php
Normal file
58
uebung8/examples/index.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php require_once(__DIR__ . "/session_lib.php");
|
||||
startTodoSession();
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Meine Todo-Liste</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<?php
|
||||
$tasks = getTasks();
|
||||
$numberOfTasks = sizeof($tasks);
|
||||
|
||||
echo <<<END
|
||||
<div class="page-header">
|
||||
<h1>Todo-Liste <small>($numberOfTasks Aufgaben)</small></h1>
|
||||
</div>
|
||||
END;
|
||||
|
||||
if ($numberOfTasks > 0) {
|
||||
echo "<ul>";
|
||||
|
||||
foreach ($tasks as $task) {
|
||||
|
||||
|
||||
echo "<li>$task <form action='tasks-delete.php' method='post' class='inline-form'><button name='task' value='$task'>löschen</button></form> </li>";
|
||||
}
|
||||
|
||||
echo "</ul>";
|
||||
} else {
|
||||
echo "Nichts zu tun";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<form action="tasks-store.php" method="post">
|
||||
|
||||
<label for="task">Todo:</label>
|
||||
<input name="task" type="text" id="task">
|
||||
|
||||
|
||||
<button type="submit">Hinzufügen</button>
|
||||
|
||||
</form>
|
||||
|
||||
<p style="text-align: center"><a href="reset.php">Liste zurücksetzen</a></p>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
11
uebung8/examples/reset.php
Normal file
11
uebung8/examples/reset.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
require_once(__DIR__ . "/session_lib.php");
|
||||
|
||||
// Session starten
|
||||
startTodoSession();
|
||||
|
||||
// Tasks zurücksetzen
|
||||
resetTasks();
|
||||
|
||||
// Weiterleitung auf die Startseite
|
||||
header("Location: index.php");
|
41
uebung8/examples/session_lib.php
Normal file
41
uebung8/examples/session_lib.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
// startet die Session und initialisiert das tasks-Array
|
||||
function startTodoSession()
|
||||
{
|
||||
// Setze einen eindeutigen Session-Name: zdvlogin mit suffix todo
|
||||
// get_current_user() liefert den Benutzernamen
|
||||
session_name(get_current_user() . "todo");
|
||||
session_start();
|
||||
|
||||
if (!isset($_SESSION['tasks'])) {
|
||||
resetTasks();
|
||||
}
|
||||
}
|
||||
|
||||
// Fügt einen Task zum Array hinzu
|
||||
function addTask($task)
|
||||
{
|
||||
array_push($_SESSION['tasks'], $task);
|
||||
}
|
||||
|
||||
|
||||
// Entfernt einen Task aus dem Array hinzu
|
||||
function removeTask($task)
|
||||
{
|
||||
$_SESSION['tasks'] = array_diff($_SESSION['tasks'], [$task]);
|
||||
}
|
||||
|
||||
|
||||
// Liefert alle Tasks
|
||||
function getTasks()
|
||||
{
|
||||
return $_SESSION['tasks'];
|
||||
}
|
||||
|
||||
|
||||
// Löscht alle Tasks
|
||||
function resetTasks()
|
||||
{
|
||||
$_SESSION['tasks'] = [];
|
||||
}
|
23
uebung8/examples/style.css
Normal file
23
uebung8/examples/style.css
Normal file
@@ -0,0 +1,23 @@
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
text-align: center;
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
.inline-form {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.inline-form button {
|
||||
border: 0;
|
||||
background-color: #c6c8ca;
|
||||
border-radius: 1em;
|
||||
font-size: x-small;
|
||||
padding: 0.3em;
|
||||
}
|
||||
|
||||
.inline-form button:hover {
|
||||
background-color: red;
|
||||
color: white;
|
||||
}
|
||||
|
19
uebung8/examples/tasks-delete.php
Normal file
19
uebung8/examples/tasks-delete.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
require_once(__DIR__ . "/session_lib.php");
|
||||
|
||||
// Prüfe, ob der POST-Parameter name existiert
|
||||
if (isset($_POST['task'])) {
|
||||
|
||||
// POST-Parameter abrufen
|
||||
$task = $_POST['task'];
|
||||
|
||||
// Session starten
|
||||
startTodoSession();
|
||||
|
||||
// Task entfernen
|
||||
removeTask($task);
|
||||
|
||||
}
|
||||
|
||||
// In jedem Fall erfolgt eine Weiterleitung auf die Startseite
|
||||
header("Location: index.php");
|
19
uebung8/examples/tasks-store.php
Normal file
19
uebung8/examples/tasks-store.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
require_once(__DIR__ . "/session_lib.php");
|
||||
|
||||
// Prüfe, ob der POST-Parameter name existiert
|
||||
if (isset($_POST['task'])) {
|
||||
|
||||
// POST-Parameter abrufen
|
||||
$task = $_POST['task'];
|
||||
|
||||
// Session starten
|
||||
startTodoSession();
|
||||
|
||||
// Task hinzufügen
|
||||
addTask($task);
|
||||
|
||||
}
|
||||
|
||||
// In jedem Fall erfolgt eine Weiterleitung auf die Startseite
|
||||
header("Location: index.php");
|
Reference in New Issue
Block a user