reload nach submit

rernanded

Erfahrenes Mitglied
Hallo,
habe folgendes Script mit dem man durchaus einen LiveChat betreiben kann. Einziges Manko, ich seh nicht wann der andere seinen Beitrag abgesendet hat.
Ich könnte nun an den submit der form einen reload (refresh) von x Minuten hängen, was dem jeweils anderen eine x- minütige Antwortfrist gibt = generelle Standard-Wartezeit von x Minuten.
Brauche also eine praktikablere Lösungsidee ohne festes Zeitlimit sondern individuell abhängig vom submit des jeweils anderen.
Danke.

Moni

PHP:
<?php

$chatFile = __DIR__ . '/chat.txt';

if (isset($_POST['news_site']) && is_string($_POST['news_site'])) {
    $line = trim($_POST['news_site']);

    if ('' !== $line) {
        file_put_contents($chatFile, $line . "\n", FILE_APPEND | LOCK_EX);
    }
}

$lines = explode("\n", rtrim(file_get_contents($chatFile)));

?>

<form action="chat.php" method="post">
    LiveChatText:<br />
    <textarea name="news_site" cols="100"></textarea>
    <input type="submit" value="OK"></input>
</form>

<?php foreach ($lines as $line) : ?>
    <p><?=htmlspecialchars($line, ENT_QUOTES, 'UTF-8')?></p>
<?php endforeach; ?>
 
Keine Ahnung wo du das herhast, aber bitte nicht.

Es wird nicht mal annähernd sichergestellt, dass bei der Datei nicht gleichzeitig gelesen und geschrieben wird (LOCK_EX gibts für file_get_contents nicht, und auch wenn: was man für eine korrekte Anwendung beachten muss füllt leicht ein Buch).

Die Nachrichten werden auch nirgends geleert oder so, wenns zu viel wird. Neben immer größer werdender Belastung für die Clients ist das ein perfektes DOS-Ziel.

Und, wie du sagst, ist das kein "Live"-Chat.
Einfachvariante: Mit JS alle paar Sekunden pollen (siehe zB. die Funktion ajax() von JQuery)
Etwas schwieriger aber besser: Wenn nichts kommt, immer langsamer pollen, bis zu einer Maximalzeit (zB. 30sec)
(Deutlich schwieriger aber schneller + resourcensparender usw.: Einen selbstgeschriebenen Socketserver)
 
Zuletzt bearbeitet:
@sheel - keine Bange, das ganze wird gar nicht öffentlich, die url kennen nur interne leute und die entstehende chat.txt wird gesondert archiviert und ansonsten vom Server gelöscht.
Ich unterhalte mich nur manchmal tel. mit Kollegen und dann müßte ich das Telefonat aufzeichnen, so machen wir einen LiveChat und haben alles gleich als Text archivierfähig.
Ich weiß, das gibts alles als SAAS oder sonstwie, aber immer mit viel anderem SchnickSchnack und Overhead, so gehts schneller.
Deine Vorschläge probier ich mal aus.
 

Neue Beiträge

Zurück