Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / HTML

Simple PHP Chat Script

4.86/5 (14 votes)
11 Oct 2013CPOL4 min read 245K   27K  
This is a simple script for chat, made with PHP and JavaScript, using OOP and AJAX.
AD - Design Tutorial : How To Make a Minion with Adobe Firewors

https://www.youtube.com/watch?v=L24Su4Munxw

 

View more skill oriented articles - www.slatecube.com

Introduction

This is a simple script for chat, made with PHP and JavaScript, using OOP and AJAX.

Requirements

  • PHP 5+
  • Browser with JavaScript enabled (preferable with support for CSS3).

This Chat script does not require database, it works with text files saved on server, so, it is fast and uses verry few server's resources. The user can add smiles in chat, and can format the text with Bold, Italic, an Underline., you can test it online to this link: Script Chat Simple. The nickname, chat room, and the On / Off setting for beep sound are saved in cookies (for one day), so, to the next visit they will be read and used from cookie. The script has been tested successfully on Mozilla Firefox, Internet Explorer, Google Chrome and Opera. This script is free (does not provide support or personal modifications).

Installation

PHP
<?php include('chat.php'); ?>
XML
<link rel="stylesheet" type="text/css" href="chatfiles/chatstyle.css" />

And move it into the HEAD section of the page where you included the script.

  • After you have unzipped the archive script_chat_simple.zip, copy on your server the file "chat.php", and the directories: chatfiles, chattxt, and chatex (with all their files, in the same directory where you have the file in which you want to include the chat). The test.php file is for test.
  • Set read-write-execute permissions to the directory chattxt, CHMOD 0777 (or 0755). In this directory PHP will save the TXT files with the chat for each chatroom.
  • In the PHP file in which you want to include this chat script, add the following code:
  • To have a valid HTML page, take this line of code (for CSS properties) from the beginning of the file "chat.php":
  • This script can also be included in ".html" files, using <object> or <iframe> tag (but the server must run PHP). So, to add the chat script into a ".html" file (blog, forum), write /copy in that page one of the following codes:
    XML
    <object type="text/html" data="dir/chat.php" 
          width="620" height="480"></object>
    XML
    <iframe src="dir/chat.php" width="100%" height="480" 
       scrolling="auto" frameborder="0" name="frame_chat"> </iframe>
    • Object tag:
    • Or IFrame:
    • "dir/chat.php" is the path to the directory and file where you have the script. If it's in the same folder, write only "chat.php".

Admin settings

PHP
define('MAXROWS', 30);
PHP
define('CHATLINK', 1);
PHP
define('CADMPASS', 'adminpass');
http://localhost/chatfiles/setchat.php?mod=admin

Then select the Chat Room you want to empty, and use the password set to CADMPASS.

In this case, you must add session_start(); to the beginning of your PHP file, as you can see in "test.php" file.

PHP
define('CHATADD', 1);
if(CHATADD !== 1) {
    if(isset($_SESSION['username'])) define('CHATUSER', $_SESSION['username']);
}

In the directory "chatex/" there are two additional WAV files: beep2.wav and beep3.wav. By default, the script uses beep1.wav. In case you want to change the audio sound that is played when a new text chat is added in chat room, change in "chatfunctions.js" file (line 13) the value of the variable:

PHP
var beepfile = 'beep1.wav';

If you want more chat rooms, add $chatrooms[] variables, with this syntax:

PHP
$chatrooms[] = 'chatroom_name';
  • In the file setchat.php (in chatfiles/ directory) you can change the default settings.
  • By default, the script saves and displays the last 30 rows of chat, you can change this number to the line of code:
  • The script allows users to add links in chat (with attribute rel="nofallow"), but if you want to remove this feature, replace the number 1 with 0, to the line of code:
  • To the following line of code you can set a password used when you want to empty chat rooms (replace "adminpass" with the password you want):
  • To empty chat rooms, access in your browser the file chatfiles/setchat.php with ?mod=admin in URL. For example:
  • If your web site has a register /login script, and you want than only the logged users to can add texts in chat, set the value of CHATADD to 0. Then set $_SESSION['username'] with the session your script uses to keep logged users; to the following code, in "setchat.php".
  • The script initially contains two chat rooms: English, and Nature, if you want only one chat room, delete the line of code that contains the variable $chatrooms[] followed by the name of the chatroom. To change the name of the chatroom, modify the value of those variables.

The script can create automatically the text files for each chat room, but PHP must have writable permissions (CHMOD 0777, or 0755) in the "chattxt" directory. The script can be easily changed to be used in other languages, just translate the text in the file "texts.php" (in "chatfiles/" folder). If you want to modify the colors and design of the chat, edit CSS properties in "chatstyle.css" (or "chatstyle_mini.css", the mini-version), in "chatfiles/" folder. The file "chatstyle_mini.css" can be used for a smaller graphics version of this chat script (width 245 px). In this version, to save space, the area with online users is not displayed.

 

9,000 + downloads! Thanks guys.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)