Einfache Talkbox - Website X5 Helpsite

Logo Schriftzug
Logo WSX5
Newsletter anmelden
Scan QR or Download Android App

Besucher Statistik
» 2 Online
» 1867 Heute
» 150 Gestern
» 2524 Woche
» 5891 Monat
» 33802 Jahr
» 319716 Gesamt
Record: 2303 (07.10.2021)
Gesamt Downloads:
Direkt zum Seiteninhalt

Einfache Talkbox

Scripte > Attachment

Eine kleine Talkbox zur Unterhaltung

Die Talkbox für eine schnelle Nachricht. Der Benutzer kann einen Namen und eine Nachricht eintragen, diese wird dann sofort auf der Seite angezeigt. Somit kann eine kurze Unterhaltung mit mehren Benutzern geführt werden.
Es kann eine Zeichen-Begrenzung von 'Name', 'Nachricht' und auch die Anzahl der Nachrichten festgelegt werden. Die Nachrichten werden automatsch aktualisiert.
Auch Emojis werden vom aktuellen Browser unterstützt. Diese (😁💔🤣💋🤟🌹😎👍 …) werden nativ dargestellt.
(Mozilla Firefox, Microsoft Edge und Google Chrome) unterstützt — Windows-Taste + . (Punkt)
Die Nachrichten werden in einer Datenbank-Datei 'talkbox.sqt'  mit SQLite gespeichert, es wird keine Verbindung zu einem Datenbank-Server benötigt.
Download Button
Downloads:
Hinweise:
In die Talkbox kann jeder Benutzer "alles mögliche" hineinschreiben. Deshalb sollten die Nachrichten der Benutzer regelmäßig kontrolliert und auch gelöscht werden.
Zum Löschen der Nachrichten rufe die Datei "talkbox_admin.php" auf oder nutze den Admin-Link (falls mit eingebaut).
Damit die Datenbank-Datei nicht zu groß wird, sollten alte Nachrichten auch öfter gelöscht werden.
Die Datei "talkbox.sqt" (Datenbank) darf nicht mit einem Texteditor bearbeitet werden, dadurch könnte die Datei unbrauchbar werden! Hierzu gibt es einen DB-Browser für SQL-Lite Dateien zur lokalen Installation: https://sqlitebrowser.org/dl/

Einbau:
ZIP-Datei in ein beliebiges Verzeichnis auf dem PC entpacken und das Verzeichnis "wsX5Obj" auf den Webserver in das Root-Verzeichnis kopieren. Nur den HTML-Code in den BODY-Bereich <body>.....</body> der aufrufende Datei einfügen.
Über die Datei 'talkbox.css' kann die Box der Homepage nach eigenen Bedürfnissen angepasst werden.
Die Datei "talkbox_admin.php" öffne mit einem Editor und trage Dein gewünschtes Admin Passwort ein (Standard: 0000).
Eine demo.html ist beigefügt, die zum Test in das Root-Verzeichnis des Webservers kopiert werden kann bzw. als Einbaubeispiel gedacht ist.
Ein Aufruf zum Test kann dann aber auch über "http://www.domain.tld/wsX5Obj/Obj120_0/talkbox.html" erfolgen.

Code für den <BODY> Bereich
<div align="center" style="text-align: center; font-family: Verdana, Arial, Sans-Serif;">
<iframe
src="wsX5Obj/Obj120_0/talkbox.php" width="240" height="400" style="border: 2px solid #876835;">
</iframe>
<br>
<a href="wsX5Obj/Obj120_0/talkbox_admin.php" target="_blank"><small>Admin</small></a>
</div>
Code Datei "talkbox.php"
<?php
// Maximale Zeichen die der Benutzer eingeben darf
$maxZeichenName = 25; // 25
$maxZeichenNachricht = 125; // 125
// Maximale Anzahl der Nachrichten
$maxNachrichten = 25; // 25
// Nachrichten neu laden nach:
$sekunden = 10; // 10
// Pfad zur Datenbank
$datenbank = "talkbox.sqt";
// Datenbank-Datei erstellen
if (!file_exists($datenbank)) {
$db = new PDO('sqlite:' . $datenbank);
$db->exec("CREATE TABLE talk(
id INTEGER PRIMARY KEY,
name TEXT,
nachricht TEXT)");
} else {
// Verbindung
if (!isset($db)) {
$db = new PDO('sqlite:' . $datenbank);
}
}
// Eintragen und Lesen
if ($_SERVER["REQUEST_METHOD"] == "POST" ||
isset($_GET["lesen"])) {
if (isset($_POST["name"], $_POST["nachricht"])) {
$insert = $db->prepare("INSERT INTO talk( name, nachricht) VALUES (:name, :nachricht)");
$insert->execute([":name" => strip_tags($_POST["name"]), ":nachricht" => strip_tags($_POST["nachricht"])]);
}
$select = $db->query("SELECT name, nachricht FROM talk ORDER BY id DESC LIMIT " . $maxNachrichten);
$nachrichten = $select->fetchAll();
foreach ($nachrichten as $nachricht) {
$text = htmlspecialchars($nachricht["nachricht"], ENT_HTML5, 'UTF-8');
echo '<div><span class="Obj120_Benutzer">' . htmlspecialchars($nachricht["name"], ENT_HTML5, 'UTF-8') . '</span>: ' .
wordwrap($text, 45, "<br>\n", true) . '</div>';
}
exit;
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="talkbox.css"/>
<script>
"use strict";
var xhr = new XMLHttpRequest();
window.addEventListener("DOMContentLoaded", function() {
document.getElementById("talk").addEventListener("click", talk);
});
function talk() {
if (document.getElementById("Obj120_Name").value != "" &&
document.getElementById("Obj120_Text").value != "") {
var daten = new FormData(document.getElementsByName("Form")[0]);
xhr.open("POST", "talkbox.php");
xhr.send(daten);
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE &&
xhr.status == 200) {
document.getElementById("Obj120_Name").value="";
document.getElementById("Obj120_Text").value="";
document.getElementById("Obj120_Nachrichten").innerHTML = xhr.responseText;
}
}
}
}
function get() {
xhr.open("GET", "talkbox.php" + "?lesen");
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE &&
xhr.status == 200) {
document.getElementById("Obj120_Nachrichten").innerHTML = xhr.responseText;
}
}
}
get();
window.setInterval("get()", (<?=$sekunden;?>*1000));
</script>
</head>
<body>
<form name="Form" id="Obj120">
<div id="Obj120_Caption">&#128490; Talkbox</div>
<div id="Obj120_Nachrichten"></div>
<input type="text" name="name" id="Obj120_Name" maxlength="<?=$maxZeichenName;?>" placeholder="Name">
&nbsp; &nbsp; <input class="Obj120_Button" type="button" value="&raquo" id="talk" title="Eintragen"><br>
<textarea name="nachricht" id="Obj120_Text" maxlength="<?=$maxZeichenNachricht;?>" placeholder="Nachricht"></textarea>
</form>
</body>
</html>
Code Datei "talkbox_admin.php"
<?php
// Passwort
$passwort = "0000";  // Passwort setzen
session_start();
// Passwort überprüfen
if (isset($_POST["passwort"])) {
if ($_POST["passwort"] == $passwort) {
$_SESSION["user"] = true;
}
}
// Abmelden
if (isset($_GET["logout"])) {
session_destroy();
header("Location: talkbox_admin.php");
}
// DB
$db = new PDO('sqlite:' . "talkbox.sqt");
$ausgabe = '';
// Löschen
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST["option"])) {
$params = $_POST["option"];
$placeholder = implode(',', array_fill(0, count($params), '?'));
$delete = $db->prepare("DELETE FROM talk WHERE id IN (" . $placeholder . ")");
if ($delete->execute($params)) {
$ausgabe .= '<p>&#10004; Die Nachrichten wurden gelöscht.</p>';
}
}
}
// Formular ausgeben
if (isset($_SESSION["user"])) {
$ausgabe .= '<form method="post">';
$select = $db->query("SELECT id, name, nachricht FROM talk ORDER BY id DESC");
$nachrichten = $select->fetchAll();
foreach ($nachrichten as $nachricht) {
$ausgabe .= '<input type="checkbox" name="option[]" value="' . $nachricht["id"] . '" id="lbl' . $nachricht["id"] . '"> ';
$ausgabe .= '<label for="lbl' . $nachricht["id"] . '"><strong>' . $nachricht["name"] . ':</strong> ' . $nachricht["nachricht"] . '</label><br>';
}
$ausgabe .= '<br><input class="Obj120_Button" type="submit" value="Löschen" title="Ausgewählte Nachrichten löschen"> -
<input class="Obj120_Button" type="button" value="Abmelden"
onClick="window.location.href=\'talkbox_admin.php?logout\'" title="Admin abmelden">
</form>';
} else {
// Anmeldung
$ausgabe .= '<form method="post">
<label>Passwort: <input id="Obj120_Name" type="password" name="passwort" required="required"></label>
<input class="Obj120_Button" type="submit" value="&raquo;">
</form>';
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Talkbox - Admin</title>
<link rel="stylesheet" href="talkbox.css"/>
</head>
<body>
<fieldset>
<legend>Talkbox - Admin</legend>
<?=$ausgabe;?>
</fieldset>
</body>
</html>
Code Datei "talkbox.css"
html, body { padding: 0px; margin: 0px; background-color: #EEF6E9; }
/* Talkbox */
form#Obj120 { width: 200px; margin: auto; padding: 10px; background-color: #EEF6E9; }
/* Talkbox - Überschrift */
div#Obj120_Caption {
text-align: center;
font-family: Tahoma, Arial, Sans-Serif;
text-decoration: underline;
font-weight: bold;
color: #876835;
}
/* Talkbox - Nachrichten */
div#Obj120_Nachrichten {
width: 200px;
height: 200px;
margin: 10px 0 25px 0;
overflow: auto;
font-family: Arial, Tahoma, Sans-Serif;
font-size: 12px;
}
/* Talkbox - Name-Feld */
input#Obj120_Name { width: 140px; border: 1px solid #7c6031; transition: all 0.15s ease-in-out; padding: 3px; }
/* Talkbox - Text-Feld */
textarea#Obj120_Text {
width: 190px;
height: 80px;
border: 1px solid #876835;
transition: all 0.15s ease-in-out;
margin-top: 6px;
padding: 3px;
}
input#Obj120_Name:focus,
textarea#Obj120_Text:focus { box-shadow: 0 0 3px #5353A8; font-family: Arial, Tahoma, Sans-Serif; font-size: 12px; }
/* Talkbox - Benutzer */
span.Obj120_Benutzer { color: #f00; }
/* Talkbox - Admin */
fieldset { width: 450px; margin: auto; }
legend { color: #876835; font-weight: bold; margin-top: 40px; }
input[type=checkbox]:checked + label { color: #DF0000; }
/* Talkbox - Button */
.Obj120_Button {
color: #876835;
font-size: 14px;
font-weight: bold;
background-color: #EEF6E8;
border: 1px solid #876835;
border-radius: 3px;
padding: 1px 8px 1px 8px;
}
.Obj120_Button:hover { background-color: #B4DA9F; }
Feedbacks zu ""

Keine Kommentare gefunden.

Bitte Dein Feedback

Du wirst als User bei Deinem ersten Kommentar automatisch registriert und musst dies noch bestätigen.
Erstellen Dir ein Konto, damit Deine Kommentare dann ohne Bestätigung veröffentlicht werden.

Login | Registrierung


          CAPTCHA
          Vielen Dank für Dein Feedback.
          Logo Host Europe
          Button Spenden

          © 2009 - 2021

          Hosting by
          Zurück zum Seiteninhalt