PHP MYSQL简易交互式站点开发


Posted in PHP onDecember 27, 2016

目的:使用PHP和MYSQL模拟权限管理系统的实现

general用户只能查看其他用户信息,不能进行修改,添加,和删除操作,root用户可以完成以上三种操作。

实现思路

1.在MySQL数据库中建立两张数据表。一张数据表保存用户名和密码,用于登陆验证,另一张保存用户权限等基本信息。
2.提交表单登陆时,先在数据库中查找该用户存不存在,若不存在,报错,存在,则验证密码,密码错误则报错,若密码正确,登陆显示所有存储在数据库中的用户信息和当前登陆用户名。
3.在用户进行添加,删除操作时,先判断权限是否足够,有权限则完成相应操作,修改数据库内容,否则提示没有权限

具体实现

1.登陆页面

<center>
 <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME'] ?>">
 用户名: <input type="text" name="user_name">
 密码: <input type="text" name="password">
 <input type="Submit" name="submit" value="登陆">
 </form>
</center>

效果如下:

PHP MYSQL简易交互式站点开发

2.连接数据库对登陆名和密码进行验证

//登陆处理
 if (isset($_POST['submit'])) 
 {
  // 用户名输入为空
  if($_POST['user_name'] == '')
  // 调用javascript函数动态提醒
  echo "<script type='text/javascript'>dis_alert(\"用户名\",1);</script>";// 密码输入为空
  if($_POST['password'] == '')
  // 调用javascript函数动态提醒
  echo "<script type='text/javascript'>dis_alert(\"密码\",1);</script>";
  // 用户名与密码均不为空
  $user_name = $_POST['user_name'];
  //链接数据库,从中读出用户名和密码
  $db = mysql_connect("localhost", "root", "123456");
  mysql_select_db("linyimin", $db);
  $result = mysql_query("select * from login where user_name = '$user_name'");
  $num = mysql_num_rows($result);
  //判断用户输入的用户名存在,验证密码
  if($num != 0)
  {
  $user_name = mysql_result($result,0,'user_name');
  $password = mysql_result($result,0,'password');
  if(strcmp($password,$_POST['password']) != 0)
  {
   echo "密码错误";
   //密码错误,报错
   $password = $_POST['password'];
   echo "<script type='text/javascript'>dis_alert('密码错误',3);</script>";
  }
  // 密码正确
  else
  {
   session_unset();
   session_start();
   $_SESSION['user_name'] = $_POST[user_name];
   header("Location:http://localhost/display.php");
   exit;
  }
  }
  // 用户输入的用户名不存在,报错 
  else if($num == 0)
  {
  // 用户名不存在,报错
  $user_name = $_POST['user_name'];
  echo "<script type='text/javascript'>dis_alert(\"$user_name\",2);</script>";
  }
  mysql_close($db); 
 }//登陆处理结束

输入错误提醒函数

<script type="text/javascript">

// 登陆错误提醒
function dis_alert(var1, var2)
{
 // 用户名和密码不能为空提醒
 if(var2 == 1)
 {
 alert(var1 + " 不能为空,请重新输入");
 history.back(-1);
 }
 // 用户名不存在错误提醒
 if(var2 == 2)
 {
 alert("该用户名 " + var1 + " 不存在,请重新输入");
 history.back(-1);
 }
 // 密码错误提醒
 if(var2 == 3)
 {
 alert("密码错误,请重新输入");
 history.back(-1);
 }
}

</script>

错误提醒效果图:

PHP MYSQL简易交互式站点开发

3.成功登陆之后显示数据库中所有用户信息和当前登陆用户名

// 获取登陆名
session_start();
$NAME = $_SESSION['user_name'];
// 连接数据库,获取数据并显示
function display()
{
 global $NAME;
 $db = mysql_connect("localhost", "root", "123456");
 mysql_select_db("linyimin",$db);
 $sql = "select * from admin_info";
 $result = mysql_query($sql);
 // 显示信息表
 echo "<h3 align=right color=#FFFFFF> 当前用户:$NAME</h6>";
 echo "<table border = 0 align = center width = 1000></br>";
 // 添加超链接
 echo "<tr align = center><th> <a href =\"display.php?add=yes\">ADD</a></th><br>";
 // 修改添加超连接
 echo "<th> <a href =\"display.php?update=yes\">UPDATE</a></th><br>";
 // 删除超链接
 echo "<th> <a href =\"display.php?delete=yes\">DELETE</a></th></tr><br>";
 echo "</table>";
 echo "<table border = 2 align = center width = 1000></br>";
 // 表头
 echo "<tr><th colspan=\"3\">管理员权限表</th></tr><br>";
 echo "<tr align = center><td>姓名</td><td>权限</td><td>职务</td></tr><br>";
 while($row = mysql_fetch_row($result))
 {
 // 显示管理员信息并通过超链接调用处理函数
 echo "<tr align = center><td>$row[0]</td>";
 echo "<td>$row[1]</td>";
 echo "<td>$row[2]</td></tr>";
 }
 echo "</table>";
 mysql_close($db);
}

显示效果如下:

PHP MYSQL简易交互式站点开发

4.修改,删除,添加操作的实现

修改,添加页面

<center>
 <form method="post" action="<?php echo $_SERVER['URL'] ?>">
 姓名: <input type="text" name="user_name">
 权限: <input type="text" name="pemission">
 职务: <input type="text" name="position">
 <input type="Submit" name="update" value="提交">
 </form>
</center>

效果如下:

PHP MYSQL简易交互式站点开发

删除页面

<center> 
 <form method="post" action="<?php echo $_SERVER['URL'] ?>" onsubmit="return confirm('请确认删除');">
 姓名: <input type="text" name="user_name">
 <input type="submit" name="update" value="删除">
</center>

效果图如下:

PHP MYSQL简易交互式站点开发

实现

// 调用修改函数
if ($_GET[update]) 
{
 modify("update");
}
// 调用添加函数
elseif($_GET[add])
{
 modify("add");
}
elseif($_GET[delete])
{
 modify("delete");
}

modify()函数的实现

// 修改数据函数
/*
点击修改超链接,跳转到修改页面
表单中,名字项指定要修改记录
权限和职务项为可修改内容
*/
function modify($operation)
{
 if(isset($_POST['update']))
 {
 // 有root权限修改,修改
 if($operation == "update" && judge("update"))
 {
  $user_name = $_POST[user_name];
  $sql = "UPDATE admin_info SET pemission = '$_POST[pemission]', position ='$_POST[position]' WHERE user_name = '$user_name'";
  mysql_query($sql);
  mysql_close($db);
  display();
 }
 // 添加
 elseif(judge("add") && $operation == "add")
 {
  $user_name = $_POST[user_name];
  $sql = "insert into admin_info (user_name, pemission, position) values ('$_POST[user_name]','$_POST[pemission]','$_POST[position]')";
  mysql_query($sql);
  mysql_close($db);
  display();
 }
 // 删除
 elseif(judge("delete") && $operation == "delete")
 {
  $user_name = $_POST[user_name];
  // 获取确认情况
  $sql = "delete from admin_info where user_name = \"$user_name\"";
  mysql_query($sql);
  }
 }
}

judge()函数的实现

// 判断修改用户名是否存在和该用户是否具有权限
function judge($operation)
{
 global $NAME;
 // 修改用户名
 $user_name = $_POST['user_name'];
 // 连接数据库,获取数据
 $db = mysql_connect("localhost", "root", "123456");
 mysql_select_db("linyimin",$db);
 // 该用户是否存在
 $sql = "select * from admin_info where user_name = \"$user_name\"";
 $result = mysql_query($sql);
 $num = mysql_num_rows($result);
 // 输入名称不存在
 if ($num == 0 && $operation != "add")
 {
  $user_name = $_POST['user_name'];
  echo "<script type='text/javascript'>dis_alert(\"$user_name\",2);</script>";
  return 0;
 }
 else
 {
  // 判断有没有权限(只有root权限可以修改)
  $sql = "select * from admin_info where user_name = \"$NAME\"";
  $result = mysql_query($sql);
  $pemission = mysql_result($result,0,'pemission');
  // 没有root权限,报错
  if(strcmp($pemission,"root") != 0)
  {
  $user_name = $_POST['user_name'];
  echo "<script type='text/javascript'>dis_alert(\"$user_name\",1);</script>";
  return 0;
  }
  else 
  return 1;
 } 
}

常用技巧记录

1.利用session实现多个php文件使用同一个变量的方法

在定义该变量的文本中打开session,并把值存入session

usersession_unset();
session_start();
$_SESSION['变量名'] = "值";

在使用该变量的文本中打开session并取出该变量

session_start();
$NAME = $_SESSION['变量名'];

2.PHP连接MYSQL数据库,并对数据库进行查找,添加,删除操作

连接数据库

// 连接数据库
$db = mysql_connect("url", "用户名", "密码");
// 选择数据库
mysql_select_db("数据库名称",$db);

查找

$sql = "select * from admin_info where 字段名 = \"查找值\"";
$result = mysql_query($sql);
// 对查找返回结果进行操作
// 获取查找返回记录数条数
$num = mysql_num_rows($result);
// 获取查找结果第一条记录的user_name字段值
$user_name = mysql_result($result,0,'user_name');
// 逐条取出查询记录
while($row = mysql_fetch_row($result))
{
 相关操作;
}

插入

$sql = "insert into 数据表 (字段1, 字段2, 字段3) values ('值1','值2','值3')";
mysql_query($sql);

删除

$sql = "delete from 数据表 where 字段名 = \"查找值\"";
mysql_query($sql);
// 关闭数据库
mysql_close($db);

3.表格提交前提醒

<form method="post" action="url" onsubmit="return confirm('请确认删除');">

4.在php中调用javascript函数

<?php
echo "<script type='text/javascript'>javascript函数;</script>";
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
第五节--克隆
Nov 16 PHP
PHP+MYSQL 出现乱码的解决方法
Aug 08 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
php中in_array函数用法分析
Nov 15 PHP
PHP SplObjectStorage使用实例
May 12 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
thinkphp实现分页显示功能
Dec 03 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 #PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 #PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 #PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 #PHP
PHP串行化与反串行化实例分析
Dec 27 #PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 #PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 #PHP
You might like
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
用jquery来定位
2007/02/20 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
关于js类的定义
2011/06/28 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
js密码强度检测
2016/01/07 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
Python操作MySQL简单实现方法
2015/01/26 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
python switch 实现多分支选择功能
2020/12/21 Python
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
公证书标准格式
2014/04/10 职场文书
500字小学生检讨书
2015/02/19 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis