Home > Article > Backend Development > ajax php chat room example code (1/5)_PHP tutorial
/*
ajax php chat room example code
But it must be based on the following terms:
*Signature. You must clearly identify the author. .
*Non-commercial use. You may not use the current work for commercial purposes.
* Be consistent. If you change, transform, or construct a new work based on a current work, you shall distribute the final work under exactly the same license as the current one
* For any secondary use or distribution, you must let others clarify the licensing terms of the current work
* Certain terms here can be waived with the express permission of the author
This agreement is a simple and easy-to-read summary of the legal text (the complete agreement)
******************************************/
//******************Parameter settings****************
//Display online users
$disonline = true;
//Number of recent content displayed when new logging in (default is 30)
$leastnum = 30;
//Default room name (default is to change one file every day), if you remove d, it will be one file every month
$room = date("y-m-d");
//The room save path must end with /
$roomdir = "rooms/";
//Encoding method
$charset = "utf-8";
//The maximum number of content items displayed on the client (it is recommended not to be too large)
$maxdisplay = 300;
//Language
$lang = array(
//Chat room description
"description"=>"Welcome to the mini ajax chat room. The latest version 1.2. To download, please go to www.bKjia.c0m" ,
//Chat room title
"title"=>"mini ajax chatroom by longbill",
//The first welcome to the chat room
"firstone"=>"welcome to longbill's mini ajax chatroom!",
//Displayed when the message contains prohibited content
"ban"=>"i am a pig!",
//Keyword
"keywords"=>"Chat room,mini,small,ajax,chat,chatroom,longbill,bKjia.c0m,php,web page special effects",
//Speech prompt
"hereyourwords" => "Speak here!"
);error_reporting(e_all ^ e_notice ^ e_warning);
header("content-type:text/html; charset=utf-8");$get_past_sec = 3; //If you find lost words, you can increase this value appropriately
$touchs = 10; //Time interval for checking the number of people online
if (!function_exists("file_get_contents"))
{
function file_get_contents($path)
{
if (!file_exists($path)) return false;
$fp=@fopen($path,"r");
$all=fread($fp,filesize($path));
fclose($fp);
return $all;
}
}if (!function_exists("file_put_contents"))
{
function file_put_contents($path,$val)
{
$fp=@fopen($path,"w");
fputs($fp,$val);
fclose($fp);
return true;
}
}
$title = $lang["title"];
$earlier = 10;
$description = $lang["description"];
$origroom = $room;
$least = ($_get["dis"])?intval($_get["dis"]):$leastnum;
$touchme = $_post['touchme'];
if (!is_dir($roomdir)) @mkdir($roomdir) or die("error when creating folder $roomdir");
$room = $_get['room'];
if (!$room) $room = $_post["room"];
$room = checkfilename($room);
if (!$room) $room = $origroom;
$filename = $roomdir.$room.".dat.php";
$datafile = $roomdir.$room.".php";
if (!file_exists($filename)) @file_put_contents($filename,''."n".time()."|".$lang["firstone"]." n");
if (!file_exists($datafile)) @file_put_contents($datafile,''."n");
$action = $_post["action"];function checkfilename($file)
{
if (!$file) return "";
$file = trim($file);
$a = substr($file,-1);
$file = eregi_replace("^[./]*","",$file);
$file = eregi_replace("[./]*$","",$file);
$arr = array("../","./","/","","..",".");
$file = str_replace($arr,"",$file);
return $file;
}1 2 3 4 5