以下是一个简单的PHP私聊功能实例,该实例使用session来跟踪用户,并使用SQLite数据库存储聊天记录。
1. 数据库设计
我们需要创建一个SQLite数据库和聊天记录表。

```sql
CREATE TABLE chat_messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sender TEXT NOT NULL,
receiver TEXT NOT NULL,
message TEXT NOT NULL,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
```
2. 用户登录与注册
接下来,我们创建一个简单的用户注册和登录界面。
```php
// register.php
// 用户注册逻辑...
// ...
// login.php
// 用户登录逻辑...
// ...
```
3. 私聊界面
现在,我们创建一个私聊界面,用户可以从这里发送和接收消息。
```php
// chat.php
session_start();
// 检查用户是否已登录
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
// 获取接收者的用户名
$receiver = $_GET['receiver'];
// 显示聊天记录
$chat_messages = [];
$db = new PDO('sqlite:chat.db');
$stmt = $db->prepare('SELECT * FROM chat_messages WHERE (sender = :sender AND receiver = :receiver) OR (sender = :receiver AND receiver = :sender)');
$stmt->execute(['sender' => $_SESSION['username'], 'receiver' => $receiver]);
$chat_messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 发送消息
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$message = $_POST['message'];
$stmt = $db->prepare('INSERT INTO chat_messages (sender, receiver, message) VALUES (:sender, :receiver, :message)');
$stmt->execute(['sender' => $_SESSION['username'], 'receiver' => $receiver, 'message' => $message]);
header('Location: chat.php?receiver=' . $receiver);
exit;
}
// 渲染聊天界面
>
本文由 @旧念何挽 发布在 房装房装饰,如有疑问,请联系我们。
文章链接:http://www.fzfzx.cn/article/lgEdMl_FabSLsAdMmAqpw







