Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan alat sembang dalam php

Bagaimana untuk melaksanakan alat sembang dalam php

藏色散人
藏色散人asal
2021-11-23 09:58:042853semak imbas

Cara melaksanakan alat sembang dalam PHP: 1. Jalankan fungsi set_chat_msg; dalam tetingkap Hanya kandungan.

Bagaimana untuk melaksanakan alat sembang dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP7.1, komputer Dell G3.

Bagaimana untuk melaksanakan alat sembang dalam PHP?

Aplikasi bilik sembang paling mudah dilaksanakan dalam PHP

Pengenalan

Aplikasi sembang sangat biasa di Internet . Pembangun juga mempunyai banyak pilihan apabila membina aplikasi tersebut. Artikel ini menerangkan cara melaksanakan aplikasi sembang berasaskan PHP-AJAX yang boleh menghantar dan menerima mesej tanpa memuat semula halaman.

Logik Teras

Sebelum mentakrifkan fungsi teras aplikasi, mari kita lihat rupa asas aplikasi sembang, seperti yang ditunjukkan dalam tangkapan skrin berikut:

Bagaimana untuk melaksanakan alat sembang dalam php

Masukkan teks sembang melalui kotak input di bahagian bawah tetingkap sembang. Klik butang Hantar untuk mula melaksanakan fungsi set_chat_msg. Ini adalah fungsi berasaskan Ajax supaya teks sembang boleh dihantar ke pelayan tanpa menyegarkan halaman. Program ini melaksanakan chat_send_ajax.php dalam pelayan bersama-sama dengan nama pengguna dan teks sembang.

//
// Set Chat Message
//
function set_chat_msg()
{
    if(typeof XMLHttpRequest != "undefined")
    {
        oxmlHttpSend = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
       oxmlHttpSend = new ActiveXObject("Microsoft.XMLHttp");
    }
    if(oxmlHttpSend == null)
    {
       alert("Browser does not support XML Http Request");
       return;
    }
    var url = "chat_send_ajax.php";
    var strname="noname";
    var strmsg="";
    if (document.getElementById("txtname") != null)
    {
        strname = document.getElementById("txtname").value;
        document.getElementById("txtname").readOnly=true;
    }
    if (document.getElementById("txtmsg") != null)
    {
        strmsg = document.getElementById("txtmsg").value;
        document.getElementById("txtmsg").value = "";
    }
    url += "?name=" + strname + "&msg=" + strmsg;
    oxmlHttpSend.open("GET",url,true);
    oxmlHttpSend.send(null);
}

Modul PHP menerima data borang daripada Rentetan Pertanyaan (rentetan pertanyaan) dan mengemas kininya ke jadual pangkalan data bernama sembang. Jadual pangkalan data sembang mempunyai lajur bernama ID, USERNAME, CHATDATE dan MSG. Medan ID ialah medan kenaikan automatik, jadi nilai yang diberikan kepada medan ID ini akan dinaikkan secara automatik. Tarikh dan masa semasa akan dikemas kini ke lajur CHATDATE.

require_once('dbconnect.php');
db_connect();
$msg = $_GET["msg"];
$dt = date("Y-m-d H:i:s");
$user = $_GET["name"];
$sql="INSERT INTO chat(USERNAME,CHATDATE,MSG) " .
      "values(" . quote($user) . "," . 
      quote($dt) . "," . quote($msg) . ");";
      echo $sql;
$result = mysql_query($sql);
if(!$result)
{
    throw new Exception('Query failed: ' . mysql_error());
    exit();
}

Untuk menerima mesej sembang daripada semua pengguna dalam jadual pangkalan data, fungsi pemasa ditetapkan untuk gelung selama 5 saat dan memanggil arahan JavaScript berikut, iaitu, fungsi get_chat_msg dilaksanakan setiap 5 detik.

var t = setInterval(function(){get_chat_msg()},5000);

get_chat_msg ialah fungsi berasaskan Ajax. Ia melaksanakan program chat_recv_ajax.php untuk mendapatkan maklumat sembang daripada jadual pangkalan data. Dalam atribut onreadystatechange, satu lagi fungsi JavaScript get_chat_msg_result disambungkan. Semasa mengembalikan mesej sembang dari jadual pangkalan data, kawalan program memasuki fungsi get_chat_msg_result.

//
// General Ajax Call
//
var oxmlHttp;
var oxmlHttpSend;
function get_chat_msg()
{
    if(typeof XMLHttpRequest != "undefined")
    {
        oxmlHttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
       oxmlHttp = new ActiveXObject("Microsoft.XMLHttp");
    }
    if(oxmlHttp == null)
    {
        alert("Browser does not support XML Http Request");
       return;
    }
    oxmlHttp.onreadystatechange = get_chat_msg_result;
    oxmlHttp.open("GET","chat_recv_ajax.php",true);
    oxmlHttp.send(null);
}

Dalam program chat_recv_ajax.php, mesej sembang daripada pengguna dikumpul melalui arahan pilih SQL. Untuk mengehadkan bilangan baris, klausa had (had 200) juga diberikan dalam pertanyaan SQL, yang memerlukan 200 baris terakhir dalam jadual pangkalan data sembang. Mesej yang diperoleh dikembalikan kepada fungsi Ajax untuk memaparkan kandungan dalam tetingkap sembang.

require_once('dbconnect.php');
db_connect();
$sql = "SELECT *, date_format(chatdate,'%d-%m-%Y %r') 
as cdt from chat order by ID desc limit 200";
$sql = "SELECT * FROM (" . $sql . ") as ch order by ID";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
// Update Row Information
$msg="";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
   $msg = $msg . "" .
        "" .
        "";
}
$msg=$msg . "<table style="color: blue; font-family: verdana, arial; " . 
  "font-size: 10pt;" border="0">
  <tbody><tr><td>" . $line["cdt"] . 
  " </td><td>" . $line["username"] . 
  ": </td><td>" . $line["msg"] . 
  "</td></tr></tbody></table>";
echo $msg;

Apabila data sedia, fungsi JavaScript akan mengumpul data yang diterima daripada PHP. Data ini akan disusun dalam teg DIV. oxmlHttp.responseText akan mengekalkan mesej sembang yang diterima daripada program PHP dan menyalinnya ke document.getElementById("DIV_CHAT"). atribut innerHTML teg DIV.

function get_chat_msg_result(t)
{
    if(oxmlHttp.readyState==4 || oxmlHttp.readyState=="complete")
    {
        if (document.getElementById("DIV_CHAT") != null)
        {
            document.getElementById("DIV_CHAT").innerHTML =  oxmlHttp.responseText;
            oxmlHttp = null;
        }
        var scrollDiv = document.getElementById("DIV_CHAT");
        scrollDiv.scrollTop = scrollDiv.scrollHeight;
    }
}

Arahan SQL CREATE TABLE berikut boleh digunakan untuk mencipta jadual pangkalan data bernama sembang. Semua maklumat yang dimasukkan oleh pengguna akan dimasukkan ke dalam jadual pangkalan data.

create table chat( id bigint AUTO_INCREMENT,username varchar(20), 
chatdate datetime,msg varchar(500), primary key(id));

Tempat Menarik

Kod untuk melaksanakan aplikasi sembang ini sangat menarik. Ia boleh diperbaiki menjadi aplikasi sembang HTTP yang lengkap. Logik untuk mencipta aplikasi ini juga sangat mudah. Malah pemula tidak akan mengalami sebarang kesukaran untuk memahaminya.

Lesen

Artikel ini, dan sebarang kod sumber dan fail berkaitan, dilesenkan di bawah Lesen Terbuka Projek Kod (CPOL).

Sumber: http://www.codeceo.com/article/php-chart-app.html

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan alat sembang 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