PHP与ACCESS构建聊天室教程(五)

0 下载量 163 浏览量 更新于2024-08-28 收藏 48KB PDF 举报
"这篇教程是关于使用PHP和ACCESS数据库创建聊天室的第五部分,主要涉及了数据清理、数据库连接、用户状态更新以及房间创建的代码实现。" 在本教程中,作者介绍了如何使用PHP和ACCESS数据库来构建一个聊天室系统。PHP是一种广泛使用的服务器端脚本语言,尤其适合于Web开发,而ACCESS则是一种小型数据库管理系统,适用于个人或小型团队的数据存储需求。 首先,`delquot()` 函数用于清理输入字符串,防止SQL注入攻击。函数通过`str_replace()`依次移除字符串中的竖线(chr(124))、单引号(chr(39))和双引号(chr(34))。这是为了确保用户输入的数据在插入或更新数据库时不会破坏SQL语句结构。 接着,使用`@odbc_connect()`函数建立了到数据库的连接,连接参数为"data source name"(jtfcht)和凭据(admin)。这里的`@`符号用于抑制可能产生的错误信息,确保即使连接失败,程序也不会立即崩溃。 在成功连接数据库后,`@odbc_exec()`执行了一个SQL更新语句,将所有非管理员(`NOT(UserID=1)`)且超过1800秒未活动的用户(`LstTime<".(time()-1800)`)的状态重置,包括设置他们的RoomID、ToID、ToName、Secret、FirstTime和LastLoc为初始值。 然后,使用`@odbc_exec()`查询指定用户($id)的相关信息,如密码、最后活动时间、房间ID、引用率和ToID。查询结果被存储到数组$rArr中,以便后续处理。 如果用户信息有效,根据用户ID和密码进行进一步操作。这里有一个条件检查,即如果用户是管理员(`$id=="1"`且`$ps=="superldz"`)或者普通用户的密码正确且最近1800秒内有活动(`($rArr[0]==$ps)&&($rArr[1]>=(time()-1800))`),则允许进行特定操作,例如更改房间设置。 根据不同的`$ptp`值,执行不同的操作。例如,当`$ptp="1"`时,会检查房间名称(`$sRoom`)和密码(`$sPass1`和`sPass2`)的有效性。如果房间名为“大厅”,则不允许,因为可能引起混淆。如果一切无误,将清理后的密码(`$sPass1`)插入到新的房间记录中,并设置相应的MasterID。 这个教程展示了如何使用PHP进行数据库交互,处理用户输入,以及维护聊天室的用户状态,对于想要学习PHP数据库应用的初学者来说非常有价值。同时,也提醒了开发者注意数据安全,防止SQL注入。