Have you been hit by the MSBlast/LovSan/SoBig/Swen worm or other viruses?
Here are some tips on how to fix it and help prevent that kind of thing.

Scripts for Educators: Free Perl/CGI programs since 1996


Perl/CGI Chat Script


Need Help?
Try the FAQ!
Hit the Forum!
Contact Me!

Programs & Scripts 


Make Your Own..
Web Page
Page Counter
Email form



Information Lookup
SillySearch (site search)


Other scripts


Other Resources

About this Site
Who's Kristina? :-)

Help & Support
Getting started
Check the FAQ!
Discussion forum
Request Support
Mailing Lists

Offsite Resources
Links and other stuff
Web Hosting providers
Online tutorials
Custom Programming
More Scripts (HotScripts)
Sites for Teachers

Support This Site!
Donate - not just money!
Buy from VisualPeace
Buy from Everything's Online!
Buy from MonsterMadness
Buy from Amazon.com


[Demo] [Who's using?] [System Requirements] [Download!] [Bug Fix Announcements] [Changelog] [License]

Program Summary

[Version 1.1 Released 03/20/2007]

SFEChat is a real-time chat cgi for the web, similar to Chat-N-Time but with more "bells & whistles." It lets you hold real-time conversations on a web page. Users log in, and then can type what they'd like to say into a text box, and hit "Enter" or click a button. The chat window refreshes itself every 10 seconds or so (you can configure the time between refreshes), so that others looking at the page will be able to see the new addition to the conversation. (You can modify this refresh setting.) This program requires the use of frames and JavaScript though, so non-frame browsers won't be able to use it.

Works with IE 6 and Netscape 7. Please make sure you and your users have the most up-to-date versions of their web browsers.

Features of SFEChat v1.0

New admin functions: /kick (kick a user out of the chat until a full screen of text has gone by), /ban (ban a user and/or IP address from the chatroom, /unban (un-ban a user or IP so they can use the chatroom again). Use /adminhelp to see the full list of options.

Registered Users: Users must register a chat room account and log in with their username/password. Makes it easier to /kick or /ban people. Admin can also add and delete registered users with /adduser and /deluser, or view registered users with /showusers.

Temporary admins: Admin can designate other chat admins by using /op or /unop. Temporary admins can use /topic, /kick, /ban, /badword, /unbadword, /addicon, and /removeicon but not /op or /unop. Operator (temporary admin) status lasts until the admin uses /unop.

Emoticons (smileys): Admin can add or remove emoticons (such as :-) being replaced with something like :-) by using /addicon and /removeicon. (You must have your own emoticons available on your site.) For example, to add an icon, you would do something like: "/addicon :-) http://your_domain.com/images/smiles/icon_smile.gif", or to remove an icon, you can do "/removeicon :-)" (no need to enter the URL for removal).

Add "bad words" to chat: Admin can add or remove "bad words" from the chat censoring mechanism using /badword and /unbadword .

Change the chat room topic: Admin can change the chatroom topic (displayed at the top of the page) with /topic . You can also configure it to allow all users to change the topic.

Enable or Disable HTML for users: You can decide whether to allow chat room users to enter HTML code or not. (Demo is set to disable HTML.)

Configure number of lines to show: You can decide how many lines of chat you want to display before the chatroom erases the oldest line from the screen. (Demo is set to 15 lines.)

Chat Logging: You can choose to log all your chat room activity to a transcript file. (or not!)

Chat Censoring: You can set up a list of "bad words" and the program will filter them out of the chatroom.

Private Messaging: Your users can send private messages to one another while in the chatroom. Private messaging has been improved over Chat-N-Time.

Online help: The /help option will only show up to the person who typed it and not clutter up the rest of the chat room.

View Who's Online: You can see who's online before entering the chat room, and during a chat.

Configurable Refresh Time: You can tell the program how often to refresh the chat screen. (Demo is set to 10 seconds.)

Clear out old chats when the room is empty: You can configure the program to clear out the chatroom when no one is left logged in, or to leave all the old chats there.

User actions or "emotes": Users can type "/me runs away" and the chatroom will display "TheirLogin runs away" in a slightly different text mode.

(Yes, I know, this would be better with Java, but hey -- what do you expect for free? :-)



Working Demo

There is a working version online for you to play with (on a Unix system).

This was ported to a Windows server with no modifications, but if you put in the full paths to the various files, they need to look like this (double backslashes): C:\\InetPub\wwwroot\\yourlogin or like "c:/InetPub/wwwroot/yourlogin" depending on your version of Perl. I know that Windows usually uses something like "C:\Inetpub\" but Perl needs you to enter paths a slightly different way.

Use the username: admin, password: hungry to test out the admin functions.


Who's Using SFEChat?

 If you've gotten SFEChat to work, send me the address of your website and I'll post a link to it.

Well, SFEChat is brand new, so I don't know who's using it yet, if anyone!

Whoops, here's one: Tomuk5.Homelinux.com Chat Room. Thanks, Tom for the link!


System Requirements

The web server where this script will be installed must have Perl 5.000 or higher. Scripts that send email require that "Sendmail" or "qmail-inject" be available on Unix/Linux-type systems. Scripts that send email under Windows-based systems require use of the Socket Perl module (Socket.pm). All scripts may require the Perl CGI module, CGI.pm .

This script requires the URI::Escape Perl module. Please have your web hosting provider install this module if you do not have it on your web server.

This script is NOT supported on the following web hosting providers:




Also, sorry, but the scripts are not supported under mod_perl, PerlEx, or speedy_cgi as I don't have any way to test them in that environment. :-(

You must be able to execute cgi programs on your web server. If you're not sure whether you have permission to do this, or are not sure how to configure the files, please ask your system administrator, or check the web pages of your web hosting provider for Help or Support information. For a free web hosting provider who supports CGI scripts, or low-cost web hosting providers, you can try looking at the "Some Places to Host your Website" page I've put together.

The web server must support both the GET and POST request methods. (Ask your hosting provider about this if you're not sure.)

Please remember: you get what you pay for, and free web hosting services are often worth what you pay for them.



But first, the obligatory plea for funding. :-)
(Scroll down if you don't want to read this part. You do NOT have to give money to download these scripts!)

Like the scripts? Give me a dollar, or say thanks! 

If you like the scripts, you can send me cash through PayPal, Amazon, or through snail mail or you can show your support in other ways. Remember: only about one out of 100 people who download the scripts even says "Thanks." :-)

All the files you need are contained in these packages. Download it in the format you wish.

Gzipped Tar format: sfechat.tar.gz
Zip format: sfechat.zip


On a Unix-type system, if you have console or command prompt access, you may unzip the tar.gz file by typing 'gunzip < sfechat.tar.gz | tar -xvf -'. If you're not very familiar with Unix, you may want to ask someone who is to help you. The latest version of Stuffit for the Mac will also handle tar.gz files.

If you have MS Windows, there is a program called WinZip (available at TuCows) which will uncompress and de-archive tar/gz files as well as Zip files.

The package contains the following files:

the actual program that processes the data from the form.
The HTML file containing the frame source for the chat room.
IMPORTANT: This is the language file for the English version of SFEChat. The program will not run without this file or another language file.
Should be BLANK when you start out. This will contain the actual chat.
Should be BLANK when you start out. The program uses this to keep track of users online.
Should be BLANK when you start out. Keeps track of the chatroom topic.
Should be BLANK when you start out. Keeps track of all registered users and their passwords.
Should be BLANK when you start out. The program uses this to keep track of IP address you want to block from your chatroom.
Use this to contain your list of "bad words" you want censored from the chat.
contains information on how to get started using the program. READ THIS before you get started!


Bug Fix Announcements

I strongly recommend that you sign up here for update and bug fix announcements about this script. I will not spam you with advertising: I just want to make sure you have the latest fixes. :-)

The program will send a confirmation message to your email address when you sign up. In order to get on the announcement list, you MUST click on the confirmation link contained in that email message. This is to protect you from someone signing you up as a joke, and to protect me from being accused of spamming. Since update announcements are sometimes few and far between, sometimes people forget that they've subscribed and report me for sending junk mail. Luckily, the system logs the address, time, and date of everyone who signs up so that I can prove I'm only sending to people who asked for it. :-)

After a major release, you may get one or two messages a week. Mostly, though, I'm afraid it's less than once a month. 

You may also sign up for announcements about other scripts on the main Scripts for Educators Mailing List page. 

This list is ONLY for announcements specifically about SFEChat: