website/Projekte/URLkuerzer1.php

113 lines
No EOL
5.8 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
include "../internal/mysql.php";
?>
<!DOCTYPE html>
<html lang="de">
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>URL K&uuml;rzer V1 - Jonas Leder</title>
<link href="/css/style.css" rel="stylesheet">
<link href="/css/normalize.css" rel="stylesheet">
<link href="/css/sourcesanspro.css" rel="stylesheet">
<link href="/css/menue.css" rel="stylesheet">
<script src="https://kit.fontawesome.com/038c6c1f0e.js" crossorigin="anonymous"></script>
<!-- Matomo -->
<script type="text/javascript">
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setCookieDomain", "*.jonasled.de"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.jonasled.de/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//matomo.jonasled.de/matomo.php?idsite=1&amp;rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->
</head>
<body>
<header>
<div class="header-wrapper">
<div class="header-homepage color-overlay" data-parallax-depth="20">
<div class="header-description gridContainer content-on-center">
<div class="row header-description-row">
<div class="header-content header-content-centered">
<div class="align-holder">
<h1 class="heading8">URL K&uuml;rzer V1</h1>
<p class="header-subtitle"> </p>
<div class="header-buttons-wrapper"></div>
</div>
</div>
</div>
</div>
</div>
<div class="header-separator header-separator-bottom ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none">
<path class="svg-white-bg" d="M737.9,94.7L0,0v100h1000V0L737.9,94.7z"></path>
</svg>
</div>
</div>
<div id="mainMenu" includeHTML="/include/menue.php?page=projekte"></div>
</header>
<div id="content">
<p>Da Google seinen URL kürzer leider einstellt (vgl. <a href="https://developers.googleblog.com/2018/03/transitioning-google-url-shortener.html">https://developers.googleblog.com/2018/03/transitioning-google-url-shortener.html</a> ), habe ich mir das Ziel genommen selber einen schnellen URL kürzer ohne Werbung (wie z.b. <a href="https://adf.ly/">adf.ly</a>) zu schreiben. Zum Einsatz kommt dabei PHP für das Frontend Python für die SQL abfragen und MySQL als Datenbank.</p>
<p>Wenn ihr den Quellcode verwenden wollt müsst ihr in eurem Webserver noch ein Alias konfigurieren. Für Apache würde dieser beispielhaft folgendermaßen lauten:</p>
<p><em>AliasMatch "^/(.*)" "/var/www/url_shorter/index.php"</em></p>
<p>Der Kürzer ist unter <a href="https://kurz.ml">kurz.ml</a> erreichbar.</p>
<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>
<script src="/js/includeHTML.js"></script>
</body>
</html>