我正在为我和我在大学的朋友创建一个在线聊天框,以便在线使用。在当前配置中,聊天消息存储在主机(我的)上的纯文本文件中,并且每秒都通过AJAX获取,但是,有时它很慢且很小,并不总是有效。
要发送消息,它会将消息传递给JavaScript函数,该函数将值传递给PHP脚本,将其与用户的唯一颜色(存储在本地cookie中)一起写入文件。这是functions.js文件(pastebin):http://pastebin.com/CpGxj5cP
这是发送消息的php文件:
<?php
session_start();
require_once('mysql_connect.php');
date_default_timezone_set("EST");
//Format the message
$date = date('n/j g:i A');
$username = $_SESSION['username'];
$color = $_COOKIE[$username];
$message = "<font color='" . $color . "'>" . $username . "</font> (" . $date . "): ";
$message .= $_GET['m'] . "\n";
$file = '../messages.txt';
$handle = fopen($file, 'a');
fputs($handle, $message);
fclose($handle);
//Reset timeout
//$_SESSION['timeout'] = 300;
?>
正如我上面所说,问题是它非常慢。如果有办法比文本文件/ AJAX更好,请告诉我!
PHP / Ajax聊天源可在http://frug.github.io/AJAX-Chat/上找到
Standalone ZIP
。readme.txt
文件进行配置。好好享受。
使用PHP查看这个聊天框的完整代码。下载源代码或查看此站点中的现场演示。
http://purpledesign.in/blog/?p=19
` function getLoginBox() {
ob_start();
require_once('login_form.html');
$sLoginForm = ob_get_clean();
$sLogoutForm = '<a href="'.$_SERVER['PHP_SELF'].'?logout=1">logout</a>';
if ((int)$_REQUEST['logout'] == 1) {
if (isset($_COOKIE['member_name']) && isset($_COOKIE['member_pass']))
$this->simple_logout();
}
if ($_REQUEST['username'] && $_REQUEST['password']) {
if ($this->check_login($_REQUEST['username'], MD5($_REQUEST['password']))) {
$this->simple_login($_REQUEST['username'], $_REQUEST['password']);
return 'Hello ' . $_REQUEST['username'] . '! ' . $sLogoutForm;
} else {
return 'Username or Password is incorrect' . $sLoginForm;
}
} else {
if ($_COOKIE['member_name'] && $_COOKIE['member_pass']) {
if ($this->check_login($_COOKIE['member_name'], $_COOKIE['member_pass'])) {
return 'Hello ' . $_COOKIE['member_name'] . '! ' . $sLogoutForm;
}
}
return $sLoginForm;
}
}`
当然,您需要创建一个登录框。请检查我分享的链接。它具有所有细节