From 7eaa6c0b674e8352361e3ca2f60c04624454361f Mon Sep 17 00:00:00 2001
From: Jonas Leder <jonas@jonasled.de>
Date: Tue, 27 Oct 2020 14:33:05 +0100
Subject: [PATCH] added comment function

---
 Projekte/URLkuerzer1.php       | 39 ++++++++++++++++++++++++++++++++++
 Projekte/URLkuerzer2.php       | 38 +++++++++++++++++++++++++++++++++
 Projekte/blitzortung.php       | 38 +++++++++++++++++++++++++++++++++
 Projekte/gclogLink.php         | 39 ++++++++++++++++++++++++++++++++++
 Projekte/insecam.php           | 38 +++++++++++++++++++++++++++++++++
 Projekte/ledtisch1.php         | 39 ++++++++++++++++++++++++++++++++++
 Projekte/ledtisch2.php         | 39 ++++++++++++++++++++++++++++++++++
 Projekte/mqttpush.php          | 38 +++++++++++++++++++++++++++++++++
 Projekte/regensensor.php       | 38 +++++++++++++++++++++++++++++++++
 Projekte/smartmirror.php       | 38 +++++++++++++++++++++++++++++++++
 Projekte/snowboy.php           | 38 +++++++++++++++++++++++++++++++++
 Projekte/websitecloner.php     | 38 +++++++++++++++++++++++++++++++++
 Projekte/youtubedownloader.php | 39 ++++++++++++++++++++++++++++++++++
 13 files changed, 499 insertions(+)

diff --git a/Projekte/URLkuerzer1.php b/Projekte/URLkuerzer1.php
index 6443189..ea2f2b4 100644
--- a/Projekte/URLkuerzer1.php
+++ b/Projekte/URLkuerzer1.php
@@ -66,6 +66,45 @@ include "../internal/mysql.php";
     <p><img src="/img/URL-kuerzer1.png"></p>
     <p><strong>Update:</strong> Da das alte Design nicht besonders schön aussah habe ich mich dazu entschlossen ein neues Design zu verwenden, welches jetzt auf <a href="https://getbootstrap.com/">Bootstrap</a> basiert. Das Design ist <a href="https://kurz.ml/design">hier</a> zu finden. Für die Benachrichtigungen unten rechts habe ich das <a href="https://github.com/kamranahmedse/jquery-toast-plugin">jquery-toast-plugin</a> von kamranahmedse verwendet. Desweiteren kann man sich in der neuen Version auch einen Link selber aussuchen. Die Weiterleitung blieb gleich wie vorher, dass heißt die alten links bleiben weiterhin bestehen und werden auch in Zukunft noch funktionieren. Eine weitere Anpassung, welche noch gemacht werden muss ist, dass er files Ordner auf einen anderen (sub)domain ausgelagert werden muss und in der index.php angepasst werden muss.</p><br>
     <a href="/files/shorter.zip"><button>Download</button></a>
+    <h2>Kommentare:</h2>
+    <?php
+
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/URLkuerzer2.php b/Projekte/URLkuerzer2.php
index 09ad49a..08f2ab1 100644
--- a/Projekte/URLkuerzer2.php
+++ b/Projekte/URLkuerzer2.php
@@ -66,7 +66,45 @@ include "../internal/mysql.php";
     Aktueller build Status: <img src="http://gitlab.jonasled.de/jonasled/url_shorter_docker/badges/master/pipeline.svg"><br>
     <img src="/img/kurz_ml_light.png">
     <img src="/img/kurz_ml_ldark.jpg">
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/blitzortung.php b/Projekte/blitzortung.php
index 236b4ec..6d51028 100644
--- a/Projekte/blitzortung.php
+++ b/Projekte/blitzortung.php
@@ -70,7 +70,45 @@ include "../internal/mysql.php";
     <p>Da Google für seine Karten auf eigenen Websites seit dem 16.Juli Geld verlangt habe ich die Karte auf leaflet umgeschrieben, welche die OSM Karten von Mapbox bezieht.</p><br>
     <a href="/files/blitzortung.zip"><button>Download V1</button></a>
     <a href="/files/blitzortung_v2.zip"><button>Download V2</button></a>
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/gclogLink.php b/Projekte/gclogLink.php
index 60c94fd..db1adb4 100644
--- a/Projekte/gclogLink.php
+++ b/Projekte/gclogLink.php
@@ -60,6 +60,45 @@ include "../internal/mysql.php";
 </header>
 <div id="content">
     <p>Da ich auf <a href="https://geocaching.com">Geocaching.com</a> keine Premium Mitgliedschaft besitze, aber meine Eltern schon, mache ich auch manchmal mit denen Geocaches, welche nur für Premium Nutzer gedacht sind. Das loggen dieser Caches ist trotzdem möglich, vorausgesetzt, man weiß wie der Link aufgebaut ist. Daher habe ich ein Script für <a href="https://tampermonkey.net/">Tampermonkey</a>&nbsp;entwickelt, welches einen Button unter die Premium Meldung platziert, welcher einen zum Log weiterleitet. Ein Screenshot ist unten zu sehen. Den Script habe ich auf&nbsp;<a href="https://greasyfork.org">greasyfork.org</a>&nbsp;veröffentlicht, da dies eine sehr bekannte Seite für Scripte ist. Der Link zu meinem Script lautet:&nbsp;<a href="https://greasyfork.org/de/scripts/372017-geocaching-log-premium-for-free">greasyfork.org/de/scripts/372017-geocaching-log-premium-for-free</a></p>
+    <h2>Kommentare:</h2>
+    <?php
+
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/insecam.php b/Projekte/insecam.php
index ff70634..12c2d9b 100644
--- a/Projekte/insecam.php
+++ b/Projekte/insecam.php
@@ -71,7 +71,45 @@ include "../internal/mysql.php";
     <img src="/img/Insecam.png"><br>
     <p>Neue Karte mit Leaflet:</p>
     <img src="/img/insecam_neu.png"><br>
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/ledtisch1.php b/Projekte/ledtisch1.php
index e31e911..3dda5b1 100644
--- a/Projekte/ledtisch1.php
+++ b/Projekte/ledtisch1.php
@@ -171,6 +171,45 @@ include "../internal/mysql.php";
         <li>Die LED sollte ausgehen.</li>
     </ul>
     <p><del>Den Quellcode findet ihr auf meinem <a href="https://git.jonasled.tk/jonasled/LED-Tisch">git Server</a> in der <a href="https://git.jonasled.tk/jonasled/LED-Tisch/src/branch/alt">alt Branch</a></del></p>
+    <h2>Kommentare:</h2>
+    <?php
+
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/ledtisch2.php b/Projekte/ledtisch2.php
index 92a29b7..d8b71ae 100644
--- a/Projekte/ledtisch2.php
+++ b/Projekte/ledtisch2.php
@@ -98,6 +98,45 @@ include "../internal/mysql.php";
     <p><strong>Quellcode:</strong></p>
     <ul><li><a href="https://gitlab.jonasled.de/jonasled/LED_Tisch">https://gitlab.jonasled.de/jonasled/LED_Tisch</a></li><li><a href="https://gitlab.jonasled.de/jonasled/LED_Tisch_App_Android">https://gitlab.jonasled.de/jonasled/LED_Tisch_App_Android</a></li><li><a href="https://gitlab.jonasled.de/jonasled/LED_Tisch_Rendering">https://gitlab.jonasled.de/jonasled/LED_Tisch_Rendering</a></li></ul><br>
     <img src="/img/ledTisch2.jpg">
+    <h2>Kommentare:</h2>
+    <?php
+
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/mqttpush.php b/Projekte/mqttpush.php
index d884299..005da12 100644
--- a/Projekte/mqttpush.php
+++ b/Projekte/mqttpush.php
@@ -63,7 +63,45 @@ include "../internal/mysql.php";
     <a href="/files/MQTT_Message.zip"><button>Download</button></a><br>
     <img src="/img/MQTT-push.png">
     <img src="/img/MQTT-push-window.png">
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/regensensor.php b/Projekte/regensensor.php
index b92fc6b..5d490f2 100644
--- a/Projekte/regensensor.php
+++ b/Projekte/regensensor.php
@@ -86,7 +86,45 @@ include "../internal/mysql.php";
         </tbody>
     </table><br>
     <img src="/img/regensensor.jpg">
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/smartmirror.php b/Projekte/smartmirror.php
index 3c01b63..f5dffc3 100644
--- a/Projekte/smartmirror.php
+++ b/Projekte/smartmirror.php
@@ -75,7 +75,45 @@ include "../internal/mysql.php";
     <a href="/files/SmartMirror.zip"><button>Download</button></a><br><br>
     <img src="/img/Spiegel.jpg">
 
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/snowboy.php b/Projekte/snowboy.php
index f277e6e..5905600 100644
--- a/Projekte/snowboy.php
+++ b/Projekte/snowboy.php
@@ -97,7 +97,45 @@ make
     <p>Kleiner Ergänzung, bei der Installation auf einem Raspberry Pi bin ich auf zwei Fehler gestoßen. Der erste war, dass der Raspberry Pi keinen direkten Mikrofon Eingang hatte. Der zweiter war dann schon etwas exotischer, ich habe nämlich meine China USB Soundkarte zum testen angeschlossen. Dort kam aber nur als Fehler "Invalid Sample Rate". Das Problem der Soundkarte ist, dass sie nur 44kHz als Abtastrate unterstützt, Snowboy braucht aber eine Abtastrate von 16kHz wie ich daraufhin nachgelesen habe. Unten sind zwei Screenshots der Fehler angefügt.</p><br>
     <img src="/img/snowboy_no_mic.png">
     <img src="/img/snowboy_wrong_sample_rate.png">
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/websitecloner.php b/Projekte/websitecloner.php
index 5d910cd..ea16514 100644
--- a/Projekte/websitecloner.php
+++ b/Projekte/websitecloner.php
@@ -64,7 +64,45 @@ include "../internal/mysql.php";
     <a href="//gitlab.jonasled.de/jonasled/WebsiteCloner">gitlab.jonasled.de/jonasled/WebsiteCloner</a>
 </p>
 
+    <h2>Kommentare:</h2>
+    <?php
 
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
diff --git a/Projekte/youtubedownloader.php b/Projekte/youtubedownloader.php
index ca52957..9f2c36e 100644
--- a/Projekte/youtubedownloader.php
+++ b/Projekte/youtubedownloader.php
@@ -61,6 +61,45 @@ include "../internal/mysql.php";
 <div id="content">
     <p>In letzter Zeit habe ich wieder vermehrt Musik, teilweise komplette Playlists, von YouTube heruntergeladen, leider war ich mit allen Tools, welche ich gefunden habe nicht besonders zufrieden, oder sie haben nach kurzer Zeit nicht mehr funktioniert. Das beste Tool, welches ich finden konnte war das Programm <a href="https://youtube-dl.org/">y</a><s><a href="https://youtube-dl.org/">outube-dl</a> leider gibt es aber für dieses Programm keine Oberfläch</s>e. (Update: Ich bin umgestiegen auf YoutubeExplode, welches für C# optimiert ist.) Jedesmal über die Konsole zu gehen wollte ich auch nicht, deswegen habe ich eine kleine und einfache Oberfläche in C# geschrieben. In diesen gibt man einfach den URL und den Speicherort ein, der Rest wird alles automatisch gemacht.</p>
     <p>Der Quellcode ist in der <a href="https://gitlab.jonasled.de/jonasled/Youtube-Downloader-YoutubeExplode">git Repo</a></p>
+    <h2>Kommentare:</h2>
+    <?php
+
+    $article = basename($_SERVER["SCRIPT_FILENAME"], '.php');
+    $result = $conn->query("SELECT * FROM comments WHERE article='$article'");
+    if ($result->num_rows > 0) {
+        while($row = $result->fetch_assoc()) {
+            $name = $row["name"] . "<br>";
+            $gravatar = get_gravatar($row["email"]);
+            $content = $row["comment"];
+
+            echo(<<<EOF
+            <h3 class="commentTitle">$name</h3>
+            <div class="comment">
+                <img src="$gravatar">
+                <article class="commentArticle">
+                    <p class="commentText">$content</p>
+                </article>
+            </div>
+            EOF);
+        }
+    }
+    ?>
+
+    <div id="newComment">
+        <form action="/newComment.php" method="post">
+            <label for="name">Name:</label><br>
+            <input type="text" id="name" name="name"><br><br>
+
+            <label for="email">E-Mail: (wird nicht ver&ouml;ffentlicht)</label><br>
+            <input type="text" id="email" name="email"><br><br>
+
+            <label for="comment">Kommentar:</label><br>
+            <textarea name="comment" id="comment"></textarea><br><br>
+
+            <input type="submit" value="Kommentar ver&ouml;ffentlichen"><br>
+            <p>Mit dem klick auf den obigen Button erkl&auml;ren sie sich mit der <a href="/datenschutzerklaerung.html">Datenschutzerkl&auml;rung</a> einverstanden.</p>
+        </form>
+    </div>
 </div>
 <footer includeHTML="/include/footer.php">
 </footer>
-- 
GitLab