В этой статье описывается простой метод реализации PHP-чата на примере. Поделитесь для вашей справки следующим образом:
Пользователь=> Служба поддержки клиентов (сначала поместите информацию в базу данных, а затем отправьте данные запроса из базы данных в службу поддержки клиентов через ob + длинное соединение)
Служба поддержки клиентов=> Пользователи (сначала получают информацию о пользователе, затем вводят информацию об ответе в базу данных и, наконец, непрерывно запрашивают данные с помощью опроса Ajax, показывая их в интерфейсе пользовательского чата)
[Примечание:] Если все страницы настроены, сначала перейдите по ссылке на страницу чата службы поддержки клиентов (сервер. php ), затем перейдите по ссылке на страницу пользователя (client.php)
Описание чертежей:
Шаг 1: Формулировка
Описание: rec: Принимающая сторона, отправитель: Отправляющая сторона, содержимое: Отправляющее содержимое, is_new: В качестве метки 1-новая информация, 2-информация для чтения (по умолчанию 1)
CREATE TABLE `chat_log` ( `log_id` int(11) NOT NULL AUTO_INCREMENT, ` rec `varchar (10) NOT NULL COMMENT'Receiver', ` sender `varchar (10) NOT NULL COMMENT'sender', ` Content `text NOT NULL COMMENT'sends content', ` is_new `tinyint (4) NOT NULL DEFAULT'1'COMMENT'Information 1 New Information 0 Readed Information', PRIMARY KEY (`log_id`,`rec`) ) ENGINE = MyISAM AUTO_INCREMENT = 105 DEFAULT CHARSET = utf8 COMMENT ='User Service Chat Polling Table'
Шаг 2: Ссылка на базу данных: подключение. PHP
$link = mysql_connect('localhost', 'root', ''); mysql_query("set names utf8"); mysql_select_db("chat");
Шаг 3: Интерфейс Пользовательского Чата: client.php
< title > User windowChat window with customer service
Четвертое: Пользователи отправляют информацию в базу данных + запрос опроса Ajax для получения информации об ответе службы поддержки клиентов
Четвертое: Пользователи отправляют информацию в базу данных + запрос опроса Ajax для получения информации об ответе службы поддержки клиентов
require('connect.php'); $msg = htmlspecialchars($_POST['msg'], ENT_QUOTES); $sql = "INSERT INTO `chat_log` (rec, sender, content) VALUES('admin', 'user', '$msg' )"; mysql_query($sql, $link); echo json_encode($msg);
Четвертое: Пользователи отправляют информацию в базу данных + запрос опроса Ajax для получения информации об ответе службы поддержки клиентов
require('connect.php'); Set_time_limit(0);//Never timeout while (true){ $sql = "SELECT * FROM `chat_log` WHERE rec='user' AND is_new=1 ORDER BY log_id DESC LIMIT 1"; $res = mysql_query($sql, $link); if($row = mysql_fetch_assoc($res)){ $sql = "UPDATE `chat_log` SET is_new=0 WHERE log_id=".$row['log_id']; mysql_query($sql,$link); die(json_encode($row)); } }
Шаг 5: Страница чата службы поддержки клиентов server.php
Customer Service Window Chat window with User
Шаг 6: База данных запросов службы поддержки клиентов, отправляют ли пользователи информацию + отправка информации пользователям
Шаг 6: База данных запросов службы поддержки клиентов, отправляют ли пользователи информацию + отправка информации пользователям
require('connect.php'); Ob_start(); // Open an output buffer, and all output information is no longer sent directly to the browser, but stored in the output buffer. echo str_repeat('', 4096); Ob_end_flush(); // Send internal buffer to browser, delete buffer content, close buffer Ob_flush(); // Send the contents of the internal buffer to the browser, delete the contents of the buffer, do not close the buffer Set_time_limit(0);//Never timeout while(true){ $sql = "select * from `chat_log` where rec= 'admin' and is_new= 1 ORDER BY log_id DESC LIMIT 1 "; $res = mysql_query($sql, $link); if($row = mysql_fetch_assoc($res)){ $sql = "UPDATE `chat_log` SET is_new=0 where log_id=".$row['log_id']; mysql_query($sql, $link); echo ""; ob_flush(); Flush (); // Release ob_flush and content not in the PHP buffer, all output to the browser; refresh the contents of the internal buffer, and output sleep(1); } }
Шаг 6: База данных запросов службы поддержки клиентов, отправляют ли пользователи информацию + отправка информации пользователям
require('connect.php'); $msg = htmlspecialchars($_POST['msg'], ENT_QUOTES); if(!empty($msg)){ $sql = "insert into chat_log(rec, sender, content) values('user', 'admin', '$msg')"; mysql_query($sql); echo json_encode($msg); }
Здесь я работаю на компьютере (сервере. PHP и клиент. php) чат, начало карты нехорошее, через некоторое время обычный чат, но не очень понятные причины, у знакомых знакомых неприятности, скажите мне, большое спасибо! __________ (Я понимаю это из-за длительных связей)
Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Тема разработки доски объявлений PHP+MySQL, Краткое изложение навыков и приложений PHP+ajax, Краткое изложение операций с файлами Php, Краткое изложение операций и операторов PHP, Краткое изложение навыков сетевого программирования PHP, Курс введения в базовую грамматику PHP, Курс введения в объектно-ориентированное программирование Php и слова Php. Краткое описание использования строк, Введение в работу с базой данных PHP + MySQL и Краткое описание общих навыков работы с базой данных PHP
Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.