PHP实现留言板功能_php注册登陆留言-程序员宅基地

技术标签: 留言板  初学者  后台  PHP  MYSQL数据库  源码  

作为一个PHP的初学者,我试着写了一个留言板,页面有点丑,多多见谅,嘻嘻嘻
#我们写留言板需要用到数据库,所以我们先要建立三个表
user表

friend表

text表

#首先需要写一个注册与登录

##注册
zhuce.html

<meta charset="utf-8">
<title>zhuce</title>
</head>
<body>
<form method="POST" action="zhuce.php">
<div style="margin-left: 500px;margin-top:200px;height: 250px;width: 250px">
<h1>用户注册页面</h1>
用户名:<input type="text" name="username">
<div>密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password">
<div><input type="submit"  name="submit" value="注册"></div>
</div>
</form>
</body>

zhuce.php

<?php
session_start();
header("Content-type: text/html; charset=utf-8"); //处理数据库用户名乱码
$user=$_POST["username"];
$pwd=$_POST["password"];
if($user==""||$pwd=="")
	 {
      	echo "<script>alert('请确认信息完整性!'); history.go(-1);</script>";  
	 }
else 
   	{
	 		
 			$link=mysqli_connect("localhost","root","","liuyan");//连接数据库
	 		mysqli_query($link,"set names utf8"); 
	 		$sql="select username from user where username='$_POST[username]'";
        	$result=mysqli_query($link,$sql);//执行sql语句
         	$num=mysqli_num_rows($result);//统计执行结果影响的行数
         	if($num)//如果存在该用户
         		{
          			echo "<script>alert('用户名已存在!'); history.go(-1);</script>";  
        		}
            else//注册新用户
        		 { 
         			$sql_insert="insert into user (username,password)values('$_POST[username]','$_POST[password]')";
         			$res_insert=mysqli_query($link,$sql_insert);
         			if($res_insert)
         			{
         				echo "<script>alert('注册成功!');window.location='denglu.html';</script>";  
         			}
         			else
         			{
         				echo "<script>alert('系统繁忙请重试!'); history.go(-1);</script>";  
         			}
          	    }
    }
 ?>


#效果如下
在这里插入图片描述

##登录
denglu.html

<head>
<meta charset="utf-8">
<title>denglu</title>
</head>
<body>
<form method="POST" action="denglu.php">
<div style="margin-left: 500px;margin-top:200px;height: 250px;width: 250px">
<h1>用户登录页面</h1>
用户名:<input type="text" name="username">
<div>密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password"></div><br/>
<input type="submit"  name="submit" value="登录"> 
<a href="zhuce.html">注册</a>  
 </div>
</form>
</body>


denglu.php

<?php
    session_start();
    	$user=$_POST["username"];
	$_SESSION["uesrname"]=$user;//session超全局变量
	$pwd=$_POST["password"];//获取密码
	if($user=""||$pwd="")
	{
      echo "<script>alert('请输入用户名或密码!'); history.go(-1);</script>";  
	}
	else
	{
		$link=mysqli_connect("localhost","root","","liuyan");//连接数据库
        mysqli_query($link,"set names utf8"); 
        $sql = "select username,password from user where username = '$_POST[username]' and password = '$_POST[password]'";  
		$result=mysqli_query($link,$sql);//执行sql语句
		$num=mysqli_num_rows($result);//统计影响结果行数,作为判断条件
		if($num)
		{
			echo "<script>alert('登录成功!');window.location='003.php';</script>";//登录成功页面跳转  
		}
		else
		{
			echo "<script>alert('用户名或密码不正确!');history.go(-1);</script>";  
	    }
	}
?>

#效果如下
在这里插入图片描述
#下面需要我们写一个登录进去的页面,它显示别人给你发来的留言以及进入你要给别人留言的页面或者退出系统,在这里我将html代码嵌入php
php代码如下
003.php

<?php
session_start();
global  $user;//定义$user
global $user1;
$_SESSION["username"]=$user;
$username=$_SESSION["uesrname"];
$user1=implode("",$_SESSION);//将session中的数组变为字符串元素
$link=mysqli_connect("localhost","root","","liuyan");//连接数据库
mysqli_query($link,"set names utf8"); 
$sql="select * from text where recever='{$username}'";
$result=mysqli_query($link,$sql);//执行语句
if($num=mysqli_num_rows($result))//将HTML嵌入PHP中,实现从数据库中获得留言信息
{?>
	<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
</head>
  <body>
 <div>
 	<a href="fabu.html">发布信息</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	<a href="tuichu.php">退出系统</a></h3></div>
 	<br/><br/>
 	
 	<h2>留言信息:</h2>
 	<table cellpadding="0" cellspacing="0" border="1" width="60%">
<tr bgcolor="#8BBCC7">

	<td>发送人</td>
	<td>接收人</td>
	<td>发送时间</td>
	<td>信息内容</td>
	<?php echo '<pre>';
	while($row=mysqli_fetch_array($result,MYSQLI_ASSOC))
	{?>
		<tr bgcolor="#FFFFFF">
	<td ><?php echo $row['sender'];?>&nbsp;</td>
	<td >&nbsp;<?php echo $row['recever'];?>&nbsp;</td>
	<td >&nbsp;<?php echo $row['comment'];?>&nbsp;</td>
	<td >&nbsp;<?php echo $row['time'];?>&nbsp;</td>
    <?php 
       }
       ?>
</tr>
</table>
</body>
</html>
     <?php	


}?>

#效果如下
在这里插入图片描述
#接下来我们就该写发布的页面以及PHP代码了
fabu.html

<head>
	<meta charset="utf-8">
	<title>fabu</title>
</head>
<body>
 <form  method="POST" action="fabu.php">
<h1>发布信息<h1>
<a href="003.php">主页面</a>
<div>接收人:<input type="text" name="recever">
</select>
</div>
</select>
</div>
<br/>
<div>
	信息内容:<textarea input type="text" name="neirong"></textarea>
</div><br/>
<input type="submit" value="发送">
</form>

fabu.php

<?php
session_start();
header("Content-type: text/html; charset=utf-8");
global $user;
$re=$_POST["recever"];//获取recever
$comment=$_POST["neirong"];//获取留言
@date_default_timezone_set(PRC);//将数组变为字符串函数
$time=date("Y-m-d G:i:s");//获取时间,G为24小时制
$_SESSION["username"]=$user;//开启session
$user1=implode("",$_SESSION);//将数组转为字符串
$link=mysqli_connect("localhost","root","","liuyan");//连接数据库
mysqli_query($link,"set names utf8"); 
$sql="insert into text(sender,recever,comment,time) values('$user1','$re','$comment','$time')";
$result=mysqli_query($link,$sql);//执行语句
$sql1="insert into friend(me,friend) values('$user1','$re')";//将me,friend存入数据库
$result=mysqli_query($link,$sql1);//执行语句
if($recever=""||$comment="")
{
	echo "<script>alert('发布失败!');window.location='fabu.html';</script>";
}
else
{
	echo "<script>alert('发布成功!');window.location='fabu.html';</script>";
}
?>

#效果如下
在这里插入图片描述
#最后是退出系统

<?php
session_start();
unset($_SESSION["uesrname"]);
echo "<script>alert('退出成功!');window.location='denglu.html';</script>"; 
?>

#效果如下
在这里插入图片描述
##第一次写博客,写得不好多有见谅,希望对大家学习PHP有所帮助,如有疑问或者改进方法请留言。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42580925/article/details/89363738

智能推荐

如何root安卓手机_手机卡顿?速度慢?帮你免 ROOT 卸载安卓手机预装APP-程序员宅基地

文章浏览阅读206次。点击关注创点工场很多安卓手机会在系统内预装一堆 "乱七八糟的" APP,一些APP大多用户都不会用到。这些预装的APP有些会长期在后台运行,不断的消耗你的运存、消耗电量,最痛苦的是这些预装APP,属于系统级应用,正常情况下无法卸载。那么这些预装的APP就没办法卸载了吗?当然不是!今天就给大家推荐一款采用图形化界面,操作非常简单的软件。免 ROOT 卸载安卓手机预装APP1.手机开启US..._怎么root卸载自带的软件可以让手机不卡吗?

SLURM Array Job_slurm job array-程序员宅基地

文章浏览阅读5.1k次。在 SLURM 中也有类似 UniScheduler 和 PBS 中 Array Job 的概念,不过它的实现有点意思,下面就说道说道。首先创建一个 shell 脚本来作为 Array Job 的一个作业,内如如下$ cat test.sh#!/bin/shsrun sleep 120然后就可以通过 sbatch 命令来提交 Array Job了,如下sbatch --array=1-10 te_slurm job array

QML学习笔记-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏7次。QML是与HTML类似的一种标记语言。QML文件采用.qml作为文件格式后缀。作为一种标记语言(类似HTML)一个QML文档有且只有一个根元素。示例:在这个例子中使用Image元素作为根元素,这个元素的宽度、高度与"images/background.png"图像相同。QML中不限制根元素类型,在上面这段代码中我们设置了Image元素的source属性作为我们的背景图像,它也是我们的根元素。_qml学习

SSH_SecureShellClient_及命令文档_sshsecureshellclient删除不了文件-程序员宅基地

文章浏览阅读3.8k次。使用SSHSecureShellClient及linux的命令文档附件第一步: 下载客户端 地址:http://charlotte.at.northwestern.edu/bef/SSHdist.html第二双击安装后好桌面上有两个图标file transfer双击这个, 然后点击file--->>connect.. host name:是host地址, port: 22_sshsecureshellclient删除不了文件

linux-系统调用02-系统调用与C库函数的区别-程序员宅基地

文章浏览阅读1.1k次。系统调用与C库函数的区别操作系统的核心是内核,内核控制系统的软硬件资源。必要时分配硬件,需要时执行软件。通过系统调用访问内核,获取想要的资源。1系统调用分类:(内核4大模块) <1>.内存管理 (cat /proc/meminfo) <2>.设备管理(字符,块,网络) <3>.文件系统管理(ext2,ext3,vfat,iso9660等) <4>.进程管理(ps)<1>.内存管理 负责内存

操作系统银行家算法Java实现彩虹姐专用版-程序员宅基地

文章浏览阅读3.3k次,点赞10次,收藏52次。​银行家算法是操作系统的经典算法之一,用于避免死锁情况的出现,使用Java语言实现​_银行家算法java

随便推点

如何使用QT的QPainter绘图和实时刷新?_qt绘图需要一直刷新吗-程序员宅基地

文章浏览阅读8.5k次。如何使用QT的QPainter绘图和实时刷新?2011-06-24 本文行家:_张_巍_Qt是个很不错的GUI,现在已经更新到4.7了。最近的项目中用到了它,需要实时的显示一个画面,这就需要定期的刷新画面,本文章记录了使用QPainter类绘制图形的步骤,供参考。Qt是个很不错的GUI,现在已经更新到4.7了。最近的项目中用到了它,需要实时的显示一个画面,这就需_qt绘图需要一直刷新吗

linux centos 编译Lua5.2.0 静态库 动态库_linux 编译lua动态库时引用静态库-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏5次。一 lua下载 lua5.2.0下载地址 :http://download.csdn.net/download/yzf279533105/9949183二笔者这里linux环境为centos6.8 64位仅编译lua静态库1. 从上面的下载地址下载得到lua-5.2.0.tar.gz压缩包,笔者这里是放在了/home目录下2. 进入目录 /home,执行解压_linux 编译lua动态库时引用静态库

“pycharm打印结果被折叠,显示不完全”的解决方案_pycharm输出完整结果-程序员宅基地

文章浏览阅读1.7w次,点赞13次,收藏34次。如果你遇到和我一样的问题,可以在代码中加入 设置显示的代码import pandas as pdimport numpy as nppd.set_option('display.max_columns', None) #显示完整的列pd.set_option('display.max_rows', None) #显示完整的行df=pd.read_csv("./data/HR.c..._pycharm输出完整结果

Android输入框实时模糊搜索_xamarin autocompletetextview 模糊-程序员宅基地

文章浏览阅读1.2k次。Android输入框实时模糊搜索很多开发场景会用到搜索框实时模糊搜索来帮助用户输入内容,如图思路是在EditText 字符变动的时候 弹出ListPopupwindow并更新列表,这样的做法google已经封装为AutoCompleteTextView用法 mAutoCompleteTextView.setAdapter(adapter); mAutoCompleteTextView.setFocusable(true); mAutoCompleteT_xamarin autocompletetextview 模糊

C# 上传本地文件到远程共享文件夹,从远程共享文件夹下载文件到本地_使用winform在共享服务器下载指定格式文件-程序员宅基地

文章浏览阅读7.7k次,点赞33次,收藏66次。在访问远程机器的文件夹的时候,首先需要对文件夹设置访问权限,具体方法自己搜一下,最好不要把共享文件夹放在桌面上,很容易出现对路径无法访问的错误。下面就是代码了。我在网上查到很多人说这是对服务器的文件上传和下载,但是我觉得这和服务器没半毛钱关系,这就是一个局域网内的文件访问。 在本地机器里的vs中新建一个C#控制台应用程序,添加如下代码,我是在远程电脑的D盘新建了一个..._使用winform在共享服务器下载指定格式文件

[2021秋招笔试记录]百度_9.3_机器学习/数据挖掘/自然语言_棋子游戏 只能走上、下、左、右,走一格,(可重复走某一格) 每走一步的得分value= |-程序员宅基地

文章浏览阅读937次。编程题买纪念品:先选心动值大的,相同心动值,选价格低的;规定一定金额和重量输入:n,m,k: 有几件纪念品,最大重量,总金额上限然后输入n个纪念品的价格,重量,心动值输出:能买几件例子:3,10,1000100,5,350,3,2300,3,3输出 : 2棋子游戏只能走上、下、左、右,走一格,(可重复走某一格)每走一步的得分value= |X-Y| X上一个格子代表的值;Y下一个格子代表的值;求最小的value输入:3(N)1 2 41 3 11 2 1输出:2_棋子游戏 只能走上、下、左、右,走一格,(可重复走某一格) 每走一步的得分value= |