Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Laman web kitar semula terpakai menggunakan fungsi pusat pemberitahuan mesej yang dibangunkan dalam PHP

Laman web kitar semula terpakai menggunakan fungsi pusat pemberitahuan mesej yang dibangunkan dalam PHP

王林
王林asal
2023-07-01 14:27:231230semak imbas

Tapak web kitar semula terpakai menggunakan fungsi pusat pemberitahuan mesej yang dibangunkan dalam PHP

Dengan perkembangan pesat Internet, kitar semula terpakai telah menjadi kaedah penggunaan yang semakin biasa. Untuk memudahkan komunikasi dan pemindahan maklumat antara pengguna, laman web kitar semula terpakai biasanya perlu menyediakan fungsi pemberitahuan mesej yang berkuasa. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi pusat pemberitahuan mesej yang cekap.

Pertama, kita perlu mencipta pangkalan data untuk menyimpan data mesej pengguna. Andaikan bahawa kami telah mencipta pangkalan data bernama "pemberitahuan", yang mengandungi jadual berikut:

  1. pengguna: digunakan untuk menyimpan maklumat tentang semua pengguna berdaftar, termasuk ID pengguna, nama pengguna dan alamat e-mel.
  2. pemberitahuan: digunakan untuk menyimpan pemberitahuan mesej pengguna, termasuk ID pemberitahuan, kandungan pemberitahuan, masa penghantaran dan ID penerima, dsb.
  3. read_notifications: digunakan untuk menyimpan pemberitahuan mesej yang telah dibaca oleh pengguna, termasuk ID pemberitahuan dan ID penerima, dsb.

Seterusnya, kita perlu menulis kod PHP untuk melaksanakan fungsi pemberitahuan mesej. Yang pertama ialah fungsi pendaftaran pengguna. Kita perlu memasukkan maklumat pengguna ke dalam pangkalan data semasa mendaftar:

<?php
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "notifications";
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 处理注册表单提交
if (isset($_POST['register'])) {
    $username = $_POST['username'];
    $email = $_POST['email'];

    // 将用户信息插入数据库
    $sql = "INSERT INTO users (username, email) VALUES ('$username', '$email')";
    $conn->query($sql);
    echo "注册成功!";
}

$conn->close();
?>

Seterusnya ialah fungsi menghantar mesej, kita perlu menyimpan mesej dalam pangkalan data dan menghantar e-mel untuk memberitahu penerima:

<?php
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "notifications";
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 处理发送消息表单提交
if (isset($_POST['send_message'])) {
    $sender_id = $_POST['sender_id'];
    $receiver_id = $_POST['receiver_id'];
    $message = $_POST['message'];

    // 将消息插入数据库
    $sql = "INSERT INTO notifications (sender_id, receiver_id, message) VALUES ('$sender_id', '$receiver_id', '$message')";
    $conn->query($sql);

    // 发送邮件通知接收者
    $email_query = "SELECT email FROM users WHERE user_id = '$receiver_id'";
    $email_result = $conn->query($email_query);
    $email = $email_result->fetch_assoc()['email'];
    mail($email, "您收到一条新的消息", $message);
    
    echo "消息发送成功!";
}

$conn->close();
?>

Yang terakhir ialah fungsi melihat mesej Pengguna boleh melihat dan mengurus mesej yang diterima di pusat mesej mereka sendiri:

<?php
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "notifications";
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 处理查看消息请求
if (isset($_GET['user_id'])) {
    $user_id = $_GET['user_id'];

    // 查询用户收到的未读消息
    $unread_query = "SELECT * FROM notifications WHERE receiver_id = '$user_id' AND notification_id NOT IN (SELECT notification_id FROM read_notifications WHERE receiver_id = '$user_id')";
    $unread_result = $conn->query($unread_query);

    echo "<h2>未读消息</h2>";
    while ($row = $unread_result->fetch_assoc()) {
        echo "<p>".$row['message']."</p>";
    }

    // 更新数据库,将未读消息标记为已读
    $mark_read_query = "INSERT INTO read_notifications (notification_id, receiver_id) SELECT notification_id, receiver_id FROM notifications WHERE receiver_id = '$user_id' AND notification_id NOT IN (SELECT notification_id FROM read_notifications WHERE receiver_id = '$user_id')";
    $conn->query($mark_read_query);

    // 查询用户所有消息
    $all_notifications_query = "SELECT * FROM notifications WHERE receiver_id = '$user_id'";
    $all_notifications_result = $conn->query($all_notifications_query);

    echo "<h2>所有消息</h2>";
    while ($row = $all_notifications_result->fetch_assoc()) {
        echo "<p>".$row['message']."</p>";
    }
}

$conn->close();
?>

Dengan kod PHP di atas, kami boleh melaksanakan pusat pemberitahuan mesej yang ringkas dan berkuasa. . Pengguna boleh mendaftar, menghantar mesej, melihat dan mengurus mesej. Di samping itu, kami juga telah melaksanakan mesej push masa nyata melalui pemberitahuan e-mel. Laman web kitar semula terpakai boleh disesuaikan dan dikembangkan mengikut keperluan sebenar, menjadikan komunikasi antara pengguna lebih mudah dan cekap.

Ringkasnya, menggunakan PHP untuk membangunkan fungsi pusat pemberitahuan mesej menambahkan keupayaan untuk menolak mesej masa nyata ke tapak web kitar semula terpakai untuk memudahkan komunikasi dan pemindahan maklumat antara pengguna. Ini sangat penting untuk meningkatkan pengalaman pengguna dan aktiviti tapak web. Adalah dipercayai bahawa dalam masa terdekat, dengan perkembangan Internet selanjutnya, fungsi pemberitahuan mesej akan digunakan dan dipromosikan dalam lebih banyak laman web dan aplikasi.

Atas ialah kandungan terperinci Laman web kitar semula terpakai menggunakan fungsi pusat pemberitahuan mesej yang dibangunkan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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