Rumah >pembangunan bahagian belakang >tutorial php >PHP melaksanakan pemberitahuan dan menolak mesej tentang laman web soal jawab pengetahuan
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
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:
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); ?>
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']); } ?>
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:
<?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(); ?>
<?php $user_id = 1; // 发送消息的用户ID function pushNotification($user_id, $content) { // 向用户发送消息 // 这里省略具体的代码,可使用 $server->push 方法实现。 } // 用户操作的代码示例 // ... // 用户操作后发送消息示例 $content = "您关注的问题有新回答"; pushNotification($user_id, $content); ?>
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!