/le-chat-php

A PHP Chat based on LE CHAT

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

General Information:

This is a PHP Chat based on LE CHAT v.1.14. An up-to-date copy of this script can be downloaded at https://github.com/DanWin/le-chat-php The original perl LE CHAT script by Lucky Eddie can be downloaded at his site or via a tor2web proxy like this one if you don't have TOR installed. If you add your own cool features or have a feature request, please tell me and I will add them, if I like them. Please also let me know about any bugs you find in the code, so I can fix them. Now a piece of information about the origin of the name "LE CHAT" copied from the original script: The "LE" in the name you can take as "Lucky Eddie", or since the script was meant to be lean and easy on server resources, as "Light Edition". It may even be the French word for "the" if you prefer. Translated from French to English, "le chat" means: "the cat".

Features:

  • Optimized for TOR
  • No JavaScript needed
  • Cookies supported, but not needed
  • Captcha
  • Multiple languages
  • Members and guests
  • Waiting room for guests
  • Moderatoral approval of new guests
  • Public, member, moderator and admin only chats
  • Private messages
  • Multi-line messages
  • Change font, colour and refresh rate in profile settings
  • Autologout when inactive for some time
  • Image embedding
  • Notes for admins and moderators
  • Clone the chat to have multiple tabs
  • Kick chatters
  • Clean selected messages
  • Clean the whole room
  • Plain text message filter
  • Regex message filter
  • And more

Installation Instructions:

You'll need to have php with pdo, pcre, mbstring and date extension and a web-server installed. You will also need the pdo_sqlite, pdo_mysql or pdo_pgsql extension, depending on which database you choose. Optionally, you can install:

  • the gd extension for the captcha feature
  • the json extension for save/restore
  • a memcached server and the memcached extension and change the configuaration to use memcached. This will lessen the database load a bit.
  • a MySQL or PostgreSQL server to use as an external database instead of SQLite
  • the openssl extension for encryption of messages and notes in the database When you have everything installed and use MySQL or PostgreSQL, you'll have to create a database and a user for the chat. Then edit the configuration at the bottom of the script to reflect the appropriate database settings and to modify the chat settings the way you like them. Then copy the script to your web-server directory and call the script in your browser with a parameter like this: http://(server)/(script-name).php?action=setup Now you can create the Superadmin account. With this account you can administer the chat and add new members and set the guest access. As soon as you are done with the setup, all necessary database tables will be created and the chat can be used. Note: If you updated the script, please visit http://(server)/(script-name).php?action=setup again, to make sure, that any database changes are applied and no errors occure.

Translating:

Copy lang_en.php and rename it to lang_YOUR_LANGCODE.php Then edit the file and translate the messages into your language and change $I to $T at the top. If you ever use a ' character, you have to escape it by using ' instead or the script will fail. When you are done, you have to edit the chat script, to include your translation. Simply add a line with 'lang_code' =>'Language name', to the $L array in the load_lang() function at the bottom, similar to what I did for the German translation. Please share your translation with me, so I can add it to the official version. To update your translation, you can copy each new string to your translation file or edit the automated lang_update.php script to reflect you language and run it.

Regex:

Yes, the chat supports regular expression filtering of messages. As regex tends to be difficult for most people, I decided to give it an extra section here. Regex is very powerful and can be used to filter messages that contain certain expressions and replace them with something else. It can be used e.g. to turn BB Code into html, so it is possible to use BB Code in the chat to format messages. To do this, use this Regex-Match '[(u|b)](.*?)[/\1]' and this Regex-Replace '<$1>$2</$1>' and your text will be '[b]bold[/b]' or '[u]underlined[/u]'. You can also use smilies by using this Regex-Match '(?-i::(cry|eek|lol|sad|smile|surprised|wink):)' and this Regex-Replace ':$1:' And now if you enter ':smile:' an image with the smiley will be loaded from your server at '/pictures/smile.gif'. The following should be escaped by putting '' in front of it, if you are trying to match one of these characters '/ \ ^ . $ | ( ) [ ] * + ? { } ,'. I used '/' as delimiter, so you will have to escape that, too. The only options I used is 'i' to make the regex case insensitive. If you want to test your regex, before applying you can use this site and enter your Regex and Replacement there and click on preg_replace. If you never used regex before, check out this starting guide to begin with regular expressions.

Live demo:

If you want to see the script in action, you can visit my TOR hidden service or via a tor2web proxy like this one if you don't have TOR installed. Considering this is a hidden service, you should be prepared for the worst case, as people tend to do illegal activities in the TOR network. I'm not online 24/7 so it might not be possible to remove such content right away. If you should see illegal content, don't panic. Use the contact form on my site to notify me and clean your browser cache afterwards. I will remove the content as soon as possible.