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>";
?>
时间: 2024-11-09 02:52:53

PHP和MYSQL开发简易交互式站点的相关文章

【Python之旅】第六篇(七):开发简易主机批量管理工具

通过前面对Paramiko模块的学习与使用,以及Python中多线程与多进程的了解,依此,就可以开发简易的主机批量管理工具了. 显然批量管理主机时,程序如果能并发执行功能是最好的,因为这样可以最大程度地利用CPU的性能,因此这就需要使用Python多线程或者多进程,基于学习的需要,这里主要使用多进程来进行开发,当然,这会存在一定问题,后面会说. 主要内容如下: 1.主机批量管理工具功能 2.设计框架 3.实现:数据库信息与程序源代码 4.实战演示 5.程序的不足 6.在写程序过程中的经验教训 7

mysql 开发进阶篇系列 55 权限与安全(安全事项 )

一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限,在安装mysql时就要重视安全问题. (1) 锁定mysql用户. (2) 其它任何用户都采取独立的账号登录,管理员通过mysql专有用户管理mysql服务,或者通过 root su到mysql用户下进行管理. (3) mysql用户目录下,除了数据文件目录,其它文件和目录属主都改为root. 我本

PHP100-第二讲 PHP5.4 Apache Mysql 搭配与多站点配置详解

PHP5.4环境搭配基本流程 关于新版的PHP环境的一个搭配过程,与之前的 php5.3.x 没有太大差异, 这次使用的环境搭配组建包括: httpd-2.2.21-win32-x86 mysql-5.5.18-win32 php-5.4.0RC4-Win32-VC9-x86 //================= LoadModule php5_module "c:/www/php54/php5apache2_2.dll" AddType application/x-httpd-ph

Android学习笔记-传感器开发之利用传感器和Tween开发简易指南针

本次我们学习Android传感器的开发,前面已经介绍过了,tween的使用,所以,我们可以结合传感器与tween动画,开发简易的指南针. 首先先介绍一下传感器的相关知识, 在Android应用程序中使用传感器要依赖于android.hardware.SensorEventListener接口.通过该接口可以监听传感器的各种事件.SensorEventListener接口的代码如下: package android.hardware; public interface SensorEventLis

MySQL开发指南

数据库开发是数据库管理系统(DBMS)和数据库应用软件设计研发的总称,数据运维.参与数据库生产环境的问题优化和解决等方面的事宜. 1.关于MySQL数据库 2.搭建MySQL环境 3.入门常用SQL.官方文档的使用 对于开发而言: SQL是基础中的基础!!! SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作关系型数据库. 下面是基于MySQL的SQL分析研究: 一.DQL(Data Query Language,数据查询语言)语句 主要由于select关键字完成,查询语句是SQ

springMVC+angular+bootstrap+mysql的简易购物网站搭建

springMVC+angular+bootstrap+mysql的简易购物网站搭建 介绍 前端的css框架用了bootstrap, 以及bootstrap的JS组件, 以及很好用的angular(angular大法好), 项目一共包含了7个静态界面, 静态界面的数据展示都使用了angularJS , 后端是基于java的spring, 容器为tomcat, 项目代码分享到百度云盘 , 这个项目的优势是, 所有的显示都是在前端完成, 数据交互也是通过ajax完成, 没有频繁的页面跳转:先上两张商

SSH2开发简易的购物网站源代码下载

原文:SSH2开发简易的购物网站源代码下载 源代码下载地址:http://www.zuidaima.com/share/1550463431412736.htm 简易的购物网站,采用SSH2 程序的BUG处理方法: 严重: StandardWrapper.Throwable java.lang.IllegalStateException: Cannot initialize context because there is already a root application context p

NodeJS+Express+MySQL开发小记(2):服务器部署

http://borninsummer.com/2015/06/17/notes-on-developing-nodejs-webapp/ NodeJS+Express+MySQL开发小记(1)里讲过在本地搭建 NodeJS 网站的若干细节.本人最近在阿里云服务器上面按最低配租了4个月的云服务器,所以想试着把这个项目部署到云上.云服务器操作系统是Ubuntu 14.04 LTS.之前一直在Windows下做开发,对于Linux下的环境搭建.配置还不是很熟悉,搭建的过程中学到很多东西. 本文简单记

在mac OS X中配置python mysql开发环境

1. 首先要下载安装mysql,下载地址: http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.19.tar.gz 解压: tar -xzvf mysql-5.6.19.tar.gz 然后下载gmock,编译mysql时需要用到: https://googlemock.googlecode.com/files/gmock-1.7.0.zip 解压到指定目录 <span style="font-size:14px;">unzi