InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: Shoutbox - Die Shoutbox für die schnelle Nachricht Artikel anzeigen

Tommy ✶✶✶✶✶ schrieb am Freitag, den 19 Januar 2018 #1
... Werner - wie immer ganz großes Kino 👍

Vielen Dank für dieses tolle Skript. Ich habe es in der Software "Mobirise" hier eingebaut:

mobirise-tutorials.com/shoutbox/
Großer Fan schrieb am Sonntag, den 30 Dezember 2018 #2
Vielen Dank für die Shoutbox, nach langer Suche endlich das Passende gefunden :)
Beste Grüße aus Niedersachsen
Burim ✶✶✶✶✶ schrieb am Donnerstag, den 30 Mai 2019 #3
Hallo Werner,

was muss mann ändern, damit man HTML Code in der Nachricht einfügen kann?

MfG

Burim
Werner schrieb am Dienstag, den 4 Juni 2019 #4
Hallo Burim,
lösche in der Datei: "shout.php" Zeile: 40, folgende Anweisung
strip_tags(.....)
Ab jetzt kann jeder Besucher auf deiner Seite auch JavaScript-Code einfügen und alles mögliche damit machen 😂
snork ✶✶✶✶✶ schrieb am Mittwoch, den 4 November 2020 #5
wie funktioniert die shoutbox mit einer datenbank? muß ich da ne pdo connection hinzufügen?
Werner schrieb am Mittwoch, den 4 November 2020 #6
Ersetze:
1$db = new PDO('sqlite:' . $datenbank);

Durch:
1$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');

Eine Tabelle kannst du dann mit phpMyAdmin erstellen.
snork ✶✶✶✶✶ schrieb am Mittwoch, den 4 November 2020 #7
ich nochmal es funktioniert . aber in der admin muß ich ja auch was ändern oder?
snork schrieb am Mittwoch, den 4 November 2020 #8
sorry das ich mich nochmal melde der erst eintarg ist gegangen danach aber leider nichts mehr ich hab es jetzt so:


<?php
$maxZeichenName = 25;
$maxZeichenNachricht = 125;


$maxNachrichten = 25;


$sekunden = 10;

$datenbank = "db/shout.sqt";


if (!file_exists($datenbank)) {
$db = new PDO('mysql:host=localhost;dbname=datenabank;charset=utf8', 'datenbankbenutzer', 'passwort');
$db->exec("CREATE TABLE shout(
id INTEGER PRIMARY KEY,
name TEXT,
nachricht TEXT)");
}
else {


if (!isset($db)) {
$db = new PDO('mysql:host=localhost;dbname=datenabank;charset=utf8', 'datenbankbenutzer', 'passwort');
}
}


if ($_SERVER["REQUEST_METHOD"] == "POST" ||
isset($_GET["lesen"])) {
if (isset($_POST["name"], $_POST["nachricht"])) {
$insert = $db->prepare("INSERT INTO shout( name, nachricht) VALUES (:name, :nachricht)");
$insert->execute([":name" => strip_tags($_POST["name"]), ":nachricht" => strip_tags($_POST["nachricht"])]);
}
$select = $db->query("SELECT name, nachricht FROM shout ORDER BY id DESC LIMIT " . $maxNachrichten);
$nachrichten = $select->fetchAll();
foreach ($nachrichten as $nachricht) {
echo '<div><span class="shoutboxBenutzer">' . $nachricht["name"] . '</span>: ' . $nachricht["nachricht"] . '</div>';
}
exit;
}
?>
Werner schrieb am Donnerstag, den 5 November 2020 #9
Damit wir uns da richtig verstehen, die Shoutbox hat bereits eine Verbindung mit einer Datenbank, nämlich mit SQLite auf Basis einer Datei.

Mit $db = new PDO('mysql:host=.... greift man auf eine MySQL-Datenbank zu.

Das alles kann weg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (!file_exists($datenbank)) {
$db = new PDO('mysql:host=localhost;dbname=datenabank;charset=utf8', 'datenbankbenutzer', 'passwort');
$db->exec("CREATE TABLE shout(
id INTEGER PRIMARY KEY,
name TEXT,
nachricht TEXT)");
}
else {


if (!isset($db)) {
$db = new PDO('mysql:host=localhost;dbname=datenabank;charset=utf8', 'datenbankbenutzer', 'passwort');
}
}

Benötigt wird nur:

1$db = new PDO('mysql:host=localhost;dbname=datenabank;charset=utf8', 'datenbankbenutzer', 'passwort');

Wie bereits geschrieben muss die MySQL Datenbank-Tabelle per Hand mit dem Prgramm phpMyAdmin ( phpmyadmin.net/ ) erstellt werden.
peter ✶✶✶✶✶ schrieb am Freitag, den 15 Januar 2021 #10
ich habe bei der shoutbox folgendes geändert:

1<input type="text" name="name" id="shoutboxName" maxlength="<?=$maxZeichenName;?>" type="text" value="<?php echo htmlentities($user['nickname']); ?>" required>



der nickname steht auch da udn die nachricht wird auch mit dem nicknamen abgesendet jedoch nach dem absenden ist der nickname des eingloggten users weg. an was kann das liegen? wird das das feld name immer gelöscht?