Home Backend Development PHP Problem How to write a chat in php website

How to write a chat in php website

Oct 29, 2019 am 10:41 AM
php chat

How to write a chat in php website

How to write a chat in php website

We can use a variety of methods to implement web chat rooms, such as websocket, Or use a third-party chat service. Here is the simplest way to continuously refresh the page to obtain information.

Recommended learning: PHP video tutorial

1. Database establishment

create table chat (
  chattime datetime,
  nick char(10),
  words char(150)
);
Copy after login

login.php

<html>
<head>
  <title>用户登录</title>
  <meta charset="utf-8">
</head>
<body>请输入您的昵称<br>
<form action="main.php" method="post" target="_self">  //点击登录后跳转到main.php,并将输入的数据用post的方式发送过去
  <input type="text" name="nick" cols="20">
  <input type="submit" value="登录">
</body>
</html>
Copy after login
Copy after login

main.php

<?php
  session_start();
  $_SESSION[&#39;nick&#39;] = $_POST[&#39;nick&#39;]; //获取login.php发送过来的数据,也就是用户昵称,并将它保存在session中用于对用户进行跟踪
?>
<html>
  <frameset rows="80%, 20%">
  <frame src="cdisplay.php" name="chatdisplay"/>   // 聊天信息展示区
  <frame src="speak.php" name="speak"/>    //发言区
  </frameset>
</html>
Copy after login
Copy after login

speak.php

<html>
<head>
  <title>发言</title>
  <meta charset="utf-8">
</head>
<body>
<?php
   session_start(); //如果设置北京时间,需要加上  date_default_timezone_set(&#39;PRC&#39;);
   if ($_POST[&#39;words&#39;]) {
   $conn = mysql_connect("127.0.0.1","root","******");  //连接数据库
   mysql_select_db("yuema", $conn);
   $time = date(y).date(m).date(d).date(h).date(i).date(s);  //当前时间
   $nick = $_SESSION[&#39;nick&#39;];
   $words = $_POST[&#39;words&#39;];
   $str = "insert into chat(chattime, nick, words) values(&#39;$time&#39;, &#39;$nick&#39;, &#39;$words&#39;);"; 
   mysql_query($str, $conn);  //将用户名,时间和发言内容进行插入
   mysql_close($conn);
}
?>
 
<form action="speak.php" method="post" target="_self">
  <input type="text" name="words" cols="20">
  <input type="submit" value="发言">
</form>
</body>
</html>
Copy after login

cdisplay.php

<html>
<head>
  <title>显示用户发言</title>
  <meta http-equiv="refresh" content="5;url=cdisplay.php">  //设置每隔5秒钟刷新一次
</head>
<body>
<?php
  $conn = mysql_connect("127.0.0.1", "root", "******");
  mysql_select_db("yuema", $conn);
  $str = "select * from chat order by chattime;";
  $result = mysql_query($str, $conn);
  $rows = mysql_num_rows($result);
  mysql_data_seek($result, $rows-15); //取最近插入的15条数据
  if ($rows<15)
    $l = $rows;
  else  
    $l = 15;
  for ($i = 1; $i <= $l; $i++) {    //输出这15条数据
    list($chattime, $nick, $words) = mysql_fetch_row($result);
    echo $chattime;
    echo " ".$nick." ";
    echo $words;
    echo "<br>";
  }
?>
</body>
</html>
Copy after login

Result display

How to write a chat in php website

2. Ajax acquisition, without refreshing the page

login.php

<html>
<head>
  <title>用户登录</title>
  <meta charset="utf-8">
</head>
<body>请输入您的昵称<br>
<form action="main.php" method="post" target="_self">  //点击登录后跳转到main.php,并将输入的数据用post的方式发送过去
  <input type="text" name="nick" cols="20">
  <input type="submit" value="登录">
</body>
</html>
Copy after login
Copy after login

main.php

<?php
  session_start();
  $_SESSION[&#39;nick&#39;] = $_POST[&#39;nick&#39;]; //获取login.php发送过来的数据,也就是用户昵称,并将它保存在session中用于对用户进行跟踪
?>
<html>
  <frameset rows="80%, 20%">
  <frame src="cdisplay.php" name="chatdisplay"/>   // 聊天信息展示区
  <frame src="speak.php" name="speak"/>    //发言区
  </frameset>
</html>
Copy after login
Copy after login

speak.php

<html>
<head>
  <title>发言</title>
  <meta charset="utf-8">
</head>
<body>
<?php
   session_start();   //如果设置北京时间,需要加上  date_default_timezone_set(&#39;PRC&#39;);
   if ($_POST[&#39;words&#39;]) {
   $conn = mysql_connect("127.0.0.1","root","******");  //连接数据库
   mysql_select_db("yuema", $conn);
   $time = date(y).date(m).date(d).date(h).date(i).date(s);  //当前时间
   $nick = $_SESSION[&#39;nick&#39;];
   $words = $_POST[&#39;words&#39;];
   $str = "insert into chat(chattime, nick, words) values(&#39;$time&#39;, &#39;$nick&#39;, &#39;$words&#39;);"; 
   mysql_query($str, $conn);  //将用户名,时间和发言内容进行插入
   mysql_close($conn);
}
?>
 
<form action="speak.php" method="post" target="_self">
  <input type="text" name="words" cols="20">
  <input type="submit" value="发言">
</form>
</body>
</html>
Copy after login

cdisplay .php

<html>
<head>
  <meta charset="utf-8">
  <title>显示用户发言</title>
  <script type="text/javascript" src="jquery.js"></script>  //jquery库,jquery.js可以在网上下载
  <script type="text/javascript">
      setInterval(&#39;show()&#39;, 3000);   // 设置自动刷新时间 3000毫秒也就是3秒钟
         function show() {
         $.ajax({
            url:&#39;server_get.php&#39;,  //请求发送到server_get.php进行处理
            type:&#39;post&#39;,
            dataType:&#39;html&#39;,
            error:function() {
              alert(&#39;请求失败,请稍后再试&#39;);
            },
            success:function(msg) {
            $(&#39;p&#39;).html(msg);  //设置body中p标签的内容
            }
       });
    }
  </script>
</head>
<body>
<p></p>
</body>
</html>
Copy after login

server_get.php

<?php
  $conn = mysql_connect("127.0.0.1", "root", "******");
  mysql_select_db("yuema", $conn);
  $str = "select * from chat order by chattime;";
  $result = mysql_query($str, $conn);
  $rows = mysql_num_rows($result);
  mysql_data_seek($result, $rows-15);
  if ($rows < 15) 
    $l = $rows;
  else
    $l = 15; 
  $string = ""; 
  for ($i = 1; $i <= $l; $i++) {
    list($chattime, $nick, $words) = mysql_fetch_row($result);
    $string.=$chattime;
    $string.=" ";
    $string.=$nick;
    $string.=" ";
    $string.=$words;
    $string.="<br>";
  }
  echo $string; 
?>
Copy after login

The above is the detailed content of How to write a chat in php website. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

In this chapter, we are going to learn the following topics related to routing ?

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

See all articles