• 技术文章 >后端开发 >php教程

    PHP MYSQL简易交互式站点开发详解

    墨辰丷墨辰丷2018-05-29 10:14:37原创706
    这篇文章主要为大家详细介绍了PHP MYSQL简易交互式站点开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    目的:使用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>

    效果如下:

    这里写图片描述

    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>

    错误提醒效果图:

    这里写图片描述

    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);
    }

    显示效果如下:

    这里写图片描述

    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>

    效果如下:

    这里写图片描述

    删除页面

     <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>

    效果图如下:

    这里写图片描述

    实现

    // 调用修改函数
    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框架CodeIgniter数据库配置步骤详解

    PHP+mysql实现从数据库获取下拉树功能的方法

    PHP实现使用mysqli操作MySQL数据库的方法

    以上就是PHP MYSQL简易交互式站点开发详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:MYSQL php 交互式
    上一篇:PHP执行shell脚本运行程序不产生core文件的方法 下一篇:PHP面向对象程序设计类的定义与用法详解
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• windows下升级PHP到5.3.3的过程及注意事项_PHP• ThinkPHP的URL重写问题_php实例• php使用strtotime和date函数判断日期是否有效代码分享_php实例• php实现memcache缓存示例讲解_php实例• function.inc.php超越php_php实例
    1/1

    PHP中文网