当前位置: 首页 > 图文教程 > 网络编程 > PHP > 基于php的聊天室编程思想

PHP
PHP memcache扩展的三种安装方法
PHP 判断常量,变量和函数是否存在
PHP session有效期问题
PHP 读取文件的正确方法
apache2.2.4+mysql5.0.77+php5.2.8安装精简
PHP 字符串编码截取函数(兼容utf-8和gb2312)
PHP 错误之引号中使用变量
php 购物车的例子
PHP 身份证号验证函数
php结合飞信 免费天气预报短信
PHP SQLite类
PHP 在线翻译函数代码
PHPMyAdmin 快速配置方法
PHP 编写的 25个游戏脚本
php 购物车实例(申精)
PHP获取当前文件所在目录 getcwd()函数
DISCUZ 论坛管理员密码忘记的解决方法
PHP 采集心得技巧
抓取YAHOO股票报价的类
PHP 模拟登陆MSN并获得用户信息

PHP 中的 基于php的聊天室编程思想


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 234 ::
收藏到网摘: n/a

基于PHP的聊天室编程思想     drate [转贴] 
关键字   PHP,聊天室
出处   http://www.phpx.com
 
 
聊天室编程思想-- 大门--登陆

发表于:中国PHP联盟 www.phpx.com 作者/来源:php2000/php2000.com 人气:2768


大门--登陆
2000年09月04
1 页面登陆的基本要素
你可以在我的竹叶看到登陆 的表单,这里提供了最基本的登陆表单项
(1)登陆表单
<form method=POST name=chatform action=chat/login.php?action=enter onSubmit="b1_submit();return true;" target="howtodo">
(a)聊天表单的名字为chatform,我使用action=enter作为进入聊天室的入口,如果没有这个参数,则显示登陆页 面.
(b)在表单提交时,先调用b1_submit()建立聊天的窗口
(c)聊天的目标窗口为b1_submit()建立 的howtodo窗口

(2)表单项
昵称:<input type=text name=name size=15 maxlength="10">
密码:<input type=password name=pass size=15 maxlength="10">
<input type=submit name=submit value=登陆 style="width:100">
<input type=reset name=reset value=重添 style="width:50">
(a)各表单项一定要设定最大允许长度 maxlength

(3)建立聊天窗口的js
<script LANGUAGE="javascript">
function b1_submit(){
chat=window.open('',"howtodo",'Status=no,scrollbars=no,resizable=no');
chat.moveTo(0,0);
chat.resizeTo(screen.availWidth,screen.availHeight);
chat.outerWidth=screen.availWidth;
chat.outerHeight=screen.availHeight;
}
这段代码先 打开一个没有状态栏,滚动条,可调整尺寸的howtodo窗口!然后移动到屏幕左上角,然后放大到允许的屏幕大小.

 

 聊天室编程思想--大门 -- 通行证

发表于:中国PHP联盟 www.phpx.com 作者/来源:php2000/php2000.com 人气:2087


大门 -- 通行证
2000年09月04
聊天室可以采用完全自由的方式运行,你可以随意 输入呢称,不用密码,不保存你的聊天状态,优点是:自由,非常适合于游客!另外一个方法是注册聊天室,每个进入 聊天室的人都要输入自己的用户名和密码才能进入!优点:充分体现个性,非常适合于老朋友,他们的呢称不会被 人恶意侵占使用.我的聊天室使用注册方法!

注册通常采用2种方法:1,先注册然后进入聊天;2,自动注 册,然后在里面修改自己的资料!我采用第2种方法!!每个新进入的聊友的用户名会被自动保存到注册到数据库内 ,下次登陆必须输入准确的密码才能进入!

下面是判断部分!本程序使用文本数据库 !

file://$useronline为在线人的数据文件名称
file://$useronlinelock为在线人的锁定标志
file://$register为已经注册的数据文件名称
file://$registerlock为注册文件的锁定标志
file://$split为分隔 符

file://登陆参数 enter
if($action == "enter")
{
file://当前时间秒数
$timecurrent = date("U");

file://锁定在线人数文件,防止同时修改同一个文件
while( file_exists($useronlinelock))
{
if(!file_exists($useronlinelock))
{
break;
}
}

file://创建临时文件
fclose(fopen($useronlinelock,"w"));

file://读入在线用户和已经注册用户的信息:密码,昵称,更新时间
$useronline = file($useronline);
$register = file($register);

file://用于判断登 陆是否成功的标志
$namesign=0;

file://判断用户名,密码的错误,用户名不允许为空,不允许超过10 个字符,密码不允许超过20个字符
if(($name =="") || (strlen($name) > 10) || (strlen($pass) > 20) )
{
print("没有昵称或密码过长");
file://登陆失败
$namesign=1;
file://删除临时文件
unlink($useronlinelock);
}
else
{
file://查找是否已经有人注册或者密码错误
$foundsign=0;
for($i=0;$i<count($register);$i++)
{
file://分割
$tempregister = split($split,$register[$i],99);
file://找到已经注册的用户名
if( $name == $tempregister[0] )
{
file://已经找到标志
$foundsign=1;
file://密码正确吗
if($pass != $tempregister[1])
print("密码错了!");
file://登陆失败
$namesign=1;
unlink($useronlinelock);
break;
}
else
{
file://老用户登陆成功
$namesign=0;
break;<