Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Teen box-chathuone

thuge94 [16.10.2006 20:35:30]

#

Simppeli Chatbox-scripti.

Ominaisuudet:
- Viesteissä näytetään päivämäärä
- Päivittyy 50 sekunnin välein (oletuksena)
- Estää html:n käytön viesteissä

Tulee seuraavaan versioon:
- Hymiöt
- Evästeeseen tallennettava nick
- Ja ehkä vielä jotain muuta mukavaa...

Online-demoa ei ole vielä saatavilla.

Asennusohje:
1. Kopioi listaukset php-tiedostoon, muuta tarvittaessa.
2. Tee tiedosto messages.dat ja anna sile 666-oikeudet.

P.S. Hei yrittäkää pysyä hengissä, jos koodi on purkkaa :)

<?php ob_start(); ?>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<title>The Teenbóx</title>
<meta http-equiv = "content-type" content = "text/html; charset=iso-8859-1">
<!--Muuta alla oleva päivitysväli jos haluat-->
<meta http-equiv = "refresh" content = "50; url = <?php echo $_SERVER['PHP_SELF'];?>"></head>
<body>
<h1>The Teenbóx</h1><br><br><p><b>Viestihistoria</b><br><?php
// haetaan viestit
$viestitiedosto = file ("messages.dat");
// ja jos ei ole viestejä niin...
if (empty($viestitiedosto)) {
echo "Ei viestejä. ";
// muussa tapauksessa:
} else {
$viestitiedosto = array_reverse ($viestitiedosto);
for ($i = 0; $i < count ($viestitiedosto); $i++) {
$tieto = explode ("|", $viestitiedosto[$i], 3);
// tulostetaan viestit aikaleiman kera irc-tyylisesti
echo "[".$tieto[0]."] &lt;".$tieto[1]."&gt; ".$tieto[2]."<br>";
}
}
?>
</p><br>
<form action="?act=send" method="post"><b>Nick</b><input type="text" name="nick" maxlength="25"><br><b>Viesti</b><input type="text" name="viesti" maxlength="200"><br><br><input type="submit" value="Lähetä"></form><br><br><?php
// viestin käsittely
if ($_GET['act'] == "send") {
// ettei vaan laiteta tyhjää viestiä
if (empty($_POST['viesti'])) {
echo "Tyhjiä viestejä ei lähetetä. ";
exit;
} else {
// haetaan tiedot
$viesti = $_POST['viesti'];
$nick = $_POST['nick'];
// Käsitellään viestit
$nick = stripslashes ($nick);
$viesti = stripslashes ($viesti);
$nick = htmlspecialchars($nick);
$viesti = htmlspecialchars ($viesti);
$nick = str_replace ("|", "", $nick);
$viesti = str_replace ("|", "", $viesti);
// Kirjoitetaan viesti tiedostoon
$tied = fopen ("messages.dat", "a");
$tied = fwrite ($tied, "".date ("j.n.Y H:i")."|".$nick."|".$viesti."\n");
$tied = @fclose ($tied);
header ("location: ".$_SERVER['PHP_SELF']."");
}
}
ob_end_flush ();
?>
</body>
</html>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta