Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan alat sembang dalam php
Cara melaksanakan alat sembang dalam PHP: 1. Jalankan fungsi set_chat_msg; dalam tetingkap Hanya kandungan.
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:
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!