user3798798798 Posted January 6, 2007 Share Posted January 6, 2007 Hi,I'm trying to put a little chatbox/shoutbox on my website. I tried this one:[code]echo "<form action='chatbox.php' method='get'>";echo "Name: <input type='text' name='visName' size=15><br>";echo "Message: <input type='text' name='message' size = 15><br>";echo "<input type='submit' value='Post' name='post'><br>";echo "</form>";CHATBOX.PHPif(isset($post)){ if(file_exists('chatbox.txt')) { $fileId = fopen('chatbox.txt', 'a'); fputs($fileId, $_POST['visName']); fputs($fileId, $_POST['message']); fclose($fileId); } else { $fileId = fopen('chatbox.txt', 'w'); fputs($fileId, $_POST['visName']); fputs($fileId, $_POST['message']); fclose($fileId); }}$fileId = fopen('chatbox.txt', 'r');while(!feof($fileId)){ $text = fgets($fileId); echo "<table>"; echo "<tr><td>".$text."</td></tr>"; echo "</table>";}fclose($fileId);[/code]And this one:[code]<? /** * 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: Verdana, 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"><? // 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>[/code]But I can't seem to get any of them working properly. They won't write data to the files like they're supposed to. And don't tell me to do that unix chmod-thingy, cause I'm running windows.And yes, the file that calls the script is .php, the files are located correctly.I've tried both with include, iframe and pasting the code into index.php.Running:Apache 2.2PHP5Installed latest versions as of december 2006.Any help would be deeply appriciated since I've been trying to get a working shoutbox for about 7 hours now and not a single one will work. I just want a simple shoutbox on my site before I go in sane.Thanks in advance. Quote Link to comment Share on other sites More sharing options...
user3798798798 Posted January 7, 2007 Author Share Posted January 7, 2007 Doesn't anyone how how to place a shoutbox on a website? Quote Link to comment Share on other sites More sharing options...
TEENFRONT Posted January 7, 2007 Share Posted January 7, 2007 HeyIv not read all the codes that you posted but maybe this is a PHP5 problem, many exisiting open source codes out there were wrote for PHP4, and may not actually work with 5.Id search around for a php5 specific shoutbox. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.