es un mini chat
 
<?
 
    /**
     * minichat 2
     * Copyright Paul Mutton, 15th August 2002.
     * http://www.jibble.org/
     * 
     * Include this file on a PHP web page to add a mini chat box.
     *
     * Features:-
     *   Totally rewritten from scratch.
     *   Much much more efficient than the previous version.
     *   HTML tags are filtered out.
     *   Imposes a max word size to avoid wrapping issues.
     *   Max nick and message lengths are enforced on the server side.
     *   Accidental "refresh" reposting is avoided.
     *   Appends all messages chronologically to the archive file.
     *   Displays latest 20 messages with the most recent at the top.
     *   Now logs I.P. addresses within comments (do what you want with them).
     *   Displays posting time in correct local time.
     *   
     */
 
    $latest = $DOCUMENT_ROOT . "/temp/minichat2.latest";
    $archive = $DOCUMENT_ROOT . "/temp/minichat2.archive";
    $size = 20;
    $nick_size = 20;
    $message_size = 256;
    $max_word_size = 20;
 
?>
 
<table width="120" align="center" border="0">
 <tr>
  <td>
   <p align="center">
    <font face="arial,sans-serif"><b><a href="http://www.jibble.org/chatbox.php">minichat 2</a></b></font>
   </p>
   <p align="center">
    <form name="minichat_form" method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
     <font face="arial,sans-serif" size="2">
      <input type="hidden" name="minichat_md5" value="<? if (isset($minichat_message)) {echo md5($minichat_message);} ?>">
      Nick:<br>
      <input type="text" name="minichat_nick" maxlength="<? echo $nick_size; ?>" size="15" style="font-family: Verdana, Arial, Helvetica, Sans-serif; font-size: 10px"><br>
      Message:<br>
      <textarea name="minichat_message" cols="16" rows="3" style="font-family: comic sans ms, Arial, Helvetica, Sans-serif; font-size: 10px"></textarea><br>
      <input type="submit" name="minichat_submit" value="submit">
     </font>
    </form>
   </p>
   <p>
    <font face="arial,sans-serif" size="1">
 
<?php
 
    // Check to see if the user is trying to post something.
    if (isset($minichat_md5) && isset($minichat_nick) && isset($minichat_message)) {
 
        // Replace any new line stuff with a space.
        $nick = strtr($nick, "\r\n", "  ");
        $message = strtr($message, "\r\n", "  ");
 
        // Trim leading and trailing whitespace where necessary and remove slashes.
        $nick = trim(stripslashes($minichat_nick));
        $message = trim(stripslashes($minichat_message));
 
        // Only proceed if the md5 hash of message is not repeated.
        if (md5($message) != $minichat_md5) {
 
            // Only proceed if the user actually filled in both fields.
            if (strlen($nick) > 0 && strlen($message) > 0) {
 
                // If the fields are too long, then chop them to the limits.
                if (strlen($nick) > $nick_size) {
                    $nick = substr($nick, 0, $nick_size);
                }
                if (strlen($message) > $message_size) {
                    $message = substr($message, 0, $message_size);
                }
 
                // Remove new line characters from the input.
                $nick = str_replace("\n", " ", $nick);
                $message = str_replace("\n", " ", $message);
 
                // Enforce the maximum word size by breaking up $message into lines.
                $message = preg_replace("/([^\s]{20})/", "$1\n", $message);
 
                // Now we can encode the nick and message into HTML.
	        $nick = htmlentities($nick);
                $message = htmlentities($message);
 
                // Now replace the new line characters in $message.
                $message = str_replace("\n", "<br>", $message);
 
                // The IP address of the poster, web cache or whatever.
                $ip = $_SERVER['REMOTE_ADDR'];
                $time = date("j M Y - G:i:s T");
 
                // Check to see if the 'latest' and 'archive' files exist and can be written to.
                if (!is_writable($latest) || !is_writable($archive)) {
                    // Touch both files.
                    touch($latest);
                    touch($archive);
                    if (!is_writable($latest) || !is_writable($archive)) {
                        exit("$latest or $archive is not writable. Please check your permissions and try again.");
                    }
                }
 
                // Read every line of the 'latest' file into an array.
                $lines = file($latest);
                $bottom_index = count($lines);
 
                // Note that each entry takes up 4 lines.
                $line_ip = "<!-- $ip -->\n";
                $line_nick = "* <font color=\"#9999ff\">Posted by $nick\n";
                $line_time = "on $time</font><br>\n";
                $line_message = "$message<br><br>\n";
 
                $entry = $line_ip . $line_nick . $line_time. $line_message;
 
                $already_posted = 0;
                for ($i = 3; $i < $bottom_index; $i += 4) {
                    if ($lines[$i] == $line_message) {
                        $already_posted = 1;
                        break;
                    }
                }
 
                if ($already_posted == 0) {
                    // Now rebuild the 'latest' file.
                    // Start by entering the new entry at the top.
                    $out = fopen($latest, "w");
                    fwrite($out, $entry);
 
                    // Then write all other entries except the oldest.
                    if ($bottom_index >= $size * 4) {
                        $bottom_index = $size * 4 - 4;
                    }
                    for ($i = 0; $i < $bottom_index; $i++) {
                        fwrite($out, $lines[$i]);
                    }
                    fclose($out);
 
                    // Also append the entry to the archive file.
                    $out = fopen($archive, "a");
                    fwrite($out, $entry);
                    fclose($out);
                }
                else {
                    // This avoided a "probably accidental" repost.
                }
 
            }
            else {
                echo "<font color=\"red\">You must fill in both fields</font><br><br>";
            }
        }
        else {
            // This avoided a deliberate repost, maybe we should say something?
        }
 
 
    }
 
    // include the latest comments on the page.
    if (file_exists($latest)) {
        include($latest);
    }
 
?>
 
    </font>
   </p>
  </td>
 </tr>
</table>
 
 
 
porque me envia un < y dice que no se encontro ese file 
   
 





