php网站怎么写一个聊天
生活随笔
收集整理的這篇文章主要介紹了
php网站怎么写一个聊天
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
php網站怎么寫一個聊天
網頁聊天室我們可以使用多種方式實現,比如websocket,或是使用第三方的聊天服務,下面介紹一種最簡單的方式,不斷刷新頁面獲取信息。
推薦學習:PHP視頻教程
1、數據庫建立
create table chat ( chattime datetime, nick char(10), words char(150) );
登錄后復制
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>
登錄后復制
main.php
<?php session_start(); $_SESSION['nick'] = $_POST['nick']; //獲取login.php發送過來的數據,也就是用戶昵稱,并將它保存在session中用于對用戶進行跟蹤 ?> <html> <frameset rows="80%, 20%"> <frame src="cdisplay.php" name="chatdisplay"/> // 聊天信息展示區 <frame src="speak.php" name="speak"/> //發言區 </frameset> </html>
登錄后復制登錄后復制
speak.php
<html>
<head>
<title>發言</title>
<meta charset="utf-8">
</head>
<body>
<?php
session_start(); //如果設置北京時間,需要加上 date_default_timezone_set('PRC');
if ($_POST['words']) {
$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['nick'];
$words = $_POST['words'];
$str = "insert into chat(chattime, nick, words) values('$time', '$nick', '$words');";
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>
登錄后復制
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>
登錄后復制
結果展示
2. ajax獲取,不刷新頁面
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>
登錄后復制
main.php
<?php session_start(); $_SESSION['nick'] = $_POST['nick']; //獲取login.php發送過來的數據,也就是用戶昵稱,并將它保存在session中用于對用戶進行跟蹤 ?> <html> <frameset rows="80%, 20%"> <frame src="cdisplay.php" name="chatdisplay"/> // 聊天信息展示區 <frame src="speak.php" name="speak"/> //發言區 </frameset> </html>
登錄后復制登錄后復制
speak.php
<html>
<head>
<title>發言</title>
<meta charset="utf-8">
</head>
<body>
<?php
session_start(); //如果設置北京時間,需要加上 date_default_timezone_set('PRC');
if ($_POST['words']) {
$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['nick'];
$words = $_POST['words'];
$str = "insert into chat(chattime, nick, words) values('$time', '$nick', '$words');";
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>
登錄后復制
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('show()', 3000); // 設置自動刷新時間 3000毫秒也就是3秒鐘
function show() {
$.ajax({
url:'server_get.php', //請求發送到server_get.php進行處理
type:'post',
dataType:'html',
error:function() {
alert('請求失敗,請稍后再試');
},
success:function(msg) {
$('p').html(msg); //設置body中p標簽的內容
}
});
}
</script>
</head>
<body>
<p></p>
</body>
</html>
登錄后復制
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;
?>
登錄后復制
以上就是php網站怎么寫一個聊天的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的php网站怎么写一个聊天的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis——事务
- 下一篇: legend2---开发日志16