Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan fungsi penghantaran mesej sembang pemesejan segera

PHP melaksanakan fungsi penghantaran mesej sembang pemesejan segera

王林
王林asal
2023-05-22 09:32:071818semak imbas

Dengan perkembangan Internet yang berterusan, pemesejan segera telah menjadi bentuk utama komunikasi harian dalam masyarakat moden, jadi fungsi menghantar mesej segera dan mesej sembang telah menjadi ciri penting dalam pelbagai laman web dan aplikasi. Artikel ini akan memperkenalkan langkah dan langkah berjaga-jaga untuk melaksanakan fungsi penghantaran mesej sembang pemesejan segera dalam PHP.

1. Penciptaan pangkalan data

Pertama, kita perlu mencipta pangkalan data untuk menyimpan data masa nyata mesej sembang. Dalam artikel ini, kami mengambil MySQL sebagai contoh untuk mencipta pangkalan data bernama "chat". Kemudian, kami mencipta jadual data yang dipanggil "mesej", yang akan mengandungi medan berikut:

  • id: integer yang meningkat secara automatik yang berfungsi sebagai pengecam unik mesej
  • sender_id: ID pengirim, digunakan untuk membezakan pengguna yang berbeza
  • id_penerima: ID penerima, juga digunakan untuk membezakan pengguna yang berbeza
  • kandungan: kandungan mesej
  • created_at: Masa penciptaan mesej, digunakan untuk pertanyaan berikutnya

2. Pengesahan pengguna

Sebelum melaksanakan fungsi pemesejan segera, kita perlu memastikan bahawa pengguna telah log masuk dan sesi telah berjaya disahkan. Anda boleh menggunakan mekanisme Sesi PHP untuk melaksanakan pengesahan pengguna.

3. Halaman Sembang

Pertama, kita perlu membuat halaman sembang dan menambah kod HTML dan CSS. Anda boleh menggunakan rangka kerja bahagian hadapan seperti Bootstrap untuk memudahkan reka bentuk halaman.

Seterusnya, kita perlu memanggil kod PHP untuk menyampaikan mesej sembang untuk pengguna. Kita boleh menggunakan kod berikut untuk menanyakan mesej sembang dalam pangkalan data:

SELECT * FROM messages 
WHERE (sender_id = $user_id AND receiver_id = $friend_id)
OR (sender_id = $friend_id AND receiver_id = $user_id)
ORDER BY created_at ASC

di mana $user_id dan $friend_id ialah ID pengguna dan rakan.

4. Fungsi penghantaran mesej

Untuk melaksanakan fungsi pemesejan segera, kita perlu menulis skrip Ajax untuk menghantar data ke pelayan dan menghuraikan respons tanpa memuat semula keseluruhan halaman.

Logik teras sembang pemesejan segera ialah protokol WebSockets, tetapi dalam artikel ini, kami akan menggunakan undian Ajax untuk mensimulasikan komunikasi masa nyata.

Di halaman hadapan, kita perlu menggunakan kod JavaScript untuk melaksanakan permintaan Ajax:

$('#send').click(function() {
    var message = $('#message').val();
    $.ajax({
        type: 'POST',
        url: 'send_message.php',
        data: {
            receiver_id: receiver_id,
            content: message,
            csrf_token: csrf_token
        },
        success: function(data) {
            // code for successful execution
        }
    });
});

Selepas menghantar mesej berjaya, kita perlu memasukkan mesej ke dalam pangkalan data:

INSERT INTO messages 
(sender_id, receiver_id, content, created_at) 
VALUES 
($user_id, $friend_id, '$content', NOW())

Dalam pusingan seterusnya Dalam permintaan pertanyaan, kita perlu menanyakan mesej terkini daripada pangkalan data dan kemudian menghantarnya semula ke halaman hujung hadapan. Ini boleh dicapai menggunakan kod berikut:

SELECT * FROM messages 
WHERE (sender_id = $friend_id AND receiver_id = $user_id AND created_at > '$last_update')
ORDER BY created_at ASC

Dalam kod di atas, $last_update ialah cap masa bagi tinjauan pendapat terakhir.

5 Keselamatan

Seperti kebanyakan aplikasi web, fungsi penghantaran sembang juga mungkin menghadapi beberapa masalah keselamatan. Contohnya:

  • Suntikan SQL: Penyerang boleh memasukkan kod SQL boleh laku ke dalam mesej, dengan itu menjejaskan keselamatan pangkalan data. Untuk mengelakkan jenis serangan ini, anda boleh menggunakan kenyataan PHP yang disediakan.
  • Serangan skrip merentas tapak (XSS): Penyerang boleh memasukkan kod JavaScript boleh laku ke dalam mesej untuk mencuri maklumat sensitif pengguna. Untuk mengelakkan jenis serangan ini, anda harus menggunakan fungsi penggantian pengekodan entiti terbina dalam JavaScript dalam halaman hadapan anda.
  • Serangan pemalsuan permintaan merentas tapak (CSRF): Penyerang boleh memalsukan identiti pengguna dan menghantar permintaan yang tidak sah kepada pelayan. Untuk mengelakkan jenis serangan ini, anda boleh menggunakan token dan kuki sesi di halaman hadapan anda.

6. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi penghantaran mesej sembang pemesejan segera. Pertama, kami mencipta pangkalan data dan memaparkan halaman sembang selepas pengesahan pengguna. Kemudian, kami menggunakan undian Ajax dan pertanyaan SQL untuk melaksanakan pemesejan segera. Akhir sekali, kami membincangkan isu keselamatan dan menyediakan penyelesaian.

Atas ialah kandungan terperinci PHP melaksanakan fungsi penghantaran mesej sembang pemesejan segera. 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