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 相关文章推荐
让你同时上传 1000 个文件 (二)
Oct 09 PHP
开源SNS系统-ThinkSNS
May 18 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
PHP 导出Excel示例分享
Aug 18 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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
smarty简单分页的实现方法
2014/10/27 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
javascript 面向对象的JavaScript类
2010/05/04 Javascript
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
生成二维码方法汇总
2014/12/26 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
js实现列表按字母排序
2020/08/11 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
Python中类型检查的详细介绍
2017/02/13 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
如何用python整理附件
2018/05/13 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
毕业大学生自荐信
2014/06/17 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
瘦西湖导游词
2015/02/03 职场文书
2016党校学习心得体会
2016/01/07 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
Python入门之基础语法详解
2021/05/11 Python
Python机器学习之底层实现KNN
2021/06/20 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang