Rumah > pembangunan bahagian belakang > tutorial php > PHP melaksanakan pemberitahuan dan menolak mesej tentang laman web soal jawab pengetahuan

PHP melaksanakan pemberitahuan dan menolak mesej tentang laman web soal jawab pengetahuan

PHPz
Lepaskan: 2023-07-01 08:52:02
asal
1061 orang telah melayarinya

PHP melaksanakan sistem pemberitahuan dan fungsi tolak mesej dalam laman web soal jawab pengetahuan.

Dengan perkembangan Internet, laman web soal jawab pengetahuan telah menjadi semakin popular, menyediakan pengguna dengan platform untuk pembelajaran interaktif dan berkongsi pengetahuan. Dalam laman web sedemikian, sistem pemberitahuan yang baik dan fungsi tolakan mesej amat penting untuk pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan sistem pemberitahuan dan fungsi push mesej dalam laman web soal jawab pengetahuan.

1. Reka bentuk dan pelaksanaan sistem pemberitahuan

  1. Reka bentuk pangkalan data

Untuk menyimpan maklumat pemberitahuan pengguna, kita perlu mereka bentuk jadual pangkalan data. Dengan mengandaikan kami menggunakan pangkalan data MySQL, kami boleh mencipta jadual bernama pemberitahuan dengan medan berikut:

  • id: Pengecam unik pemberitahuan, ditetapkan kepada kunci utama peningkatan automatik.
  • user_id: Pengecam unik pengguna.
  • kandungan: Kandungan khusus pemberitahuan.
  • created_at: Masa pemberitahuan dibuat.
  1. Penjanaan dan storan pemberitahuan

Apabila pengguna melakukan operasi berkaitan (seperti diikuti, menerima mesej peribadi, mempunyai jawapan baharu kepada soalan, dsb.), kami perlu menjana pemberitahuan yang sepadan dan menyimpannya dalam pangkalan data. Berikut ialah contoh kod yang dilaksanakan:

<?php

function generateNotification($user_id, $content) {
    $sql = "INSERT INTO notifications (user_id, content, created_at) VALUES (?, ?, NOW())";
    // 使用预处理语句减少 SQL 注入风险
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$user_id, $content]);
}

// 生成通知示例
$user_id = 1;
$content = "您的问题有新回答";
generateNotification($user_id, $content);
?>
Salin selepas log masuk
  1. Paparan dan pembacaan pemberitahuan

Apabila pengguna log masuk ke tapak web, kami perlu memaparkan pemberitahuan pengguna kepada mereka dan menandakannya sebagai dibaca. Berikut ialah contoh kod ringkas:

<?php

function getNotifications($user_id) {
    $sql = "SELECT * FROM notifications WHERE user_id = ? ORDER BY created_at DESC";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$user_id]);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

function markAsRead($notification_id) {
    $sql = "UPDATE notifications SET is_read = 1 WHERE id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$notification_id]);
}

// 获取用户通知示例
$user_id = 1;
$notifications = getNotifications($user_id);
foreach ($notifications as $notification) {
    echo $notification['content'];
    markAsRead($notification['id']);
}
?>
Salin selepas log masuk

2. Reka bentuk dan pelaksanaan fungsi tolak mesej

Untuk melaksanakan fungsi push mesej, kita boleh menggunakan protokol WebSocket dan menggabungkannya dengan sambungan Swoole PHP. Berikut ialah contoh reka bentuk dan pelaksanaan yang mudah:

  1. Mula-mula pasang sambungan Swoole dan dayakan fungsi WebSocket.
  2. Buat pelayan WebSocket dan pantau sambungan pengguna:
<?php

$server = new SwooleWebsocketServer("127.0.0.1", 9502);

$server->on('open', function (SwooleWebsocketServer $server, $request) {
    echo "用户 {$request->fd} 连接成功
";
});

$server->on('message', function (SwooleWebsocketServer $server, $frame) {
    echo "收到来自用户 {$frame->fd} 的消息: {$frame->data}
";
});

$server->on('close', function ($ser, $fd) {
    echo "连接关闭:{$fd}
";
});

$server->start();
?>
Salin selepas log masuk
  1. Pantau operasi pengguna dan hantar mesej yang sepadan kepada pelanggan mengikut keperluan perniagaan:
<?php

$user_id = 1; // 发送消息的用户ID

function pushNotification($user_id, $content) {
    // 向用户发送消息
    // 这里省略具体的代码,可使用 $server->push 方法实现。
}

// 用户操作的代码示例
// ...

// 用户操作后发送消息示例
$content = "您关注的问题有新回答";
pushNotification($user_id, $content);
?>
Salin selepas log masuk

Di atas adalah penggunaan PHP untuk melaksanakan sistem pemberitahuan laman web soal jawab pengetahuan dan contoh pelaksanaan mudah fungsi push mesej. Berdasarkan keperluan sebenar, anda boleh membangunkan dan mengoptimumkan fungsi yang lebih kompleks atas dasar ini. Harap artikel ini dapat membantu anda!

Atas ialah kandungan terperinci PHP melaksanakan pemberitahuan dan menolak mesej tentang laman web soal jawab pengetahuan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan