Рубрики
Uncategorized

Подробное объяснение простого метода реализации PHP-чата

Автор оригинала: David Wong.

В этой статье описывается простой метод реализации 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 window 
  
  
  


  
  

Chat 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 – программ для всех.