|
PHP和MYSQL开发简易交互式站点
目的:使用PHP和MYSQL模拟权限管理系统的实现
general用户只能查看其他用户信息,不能进行修改,添加,和删除操作,root用户可以完成以上三种操作。
实现思路
1.在MySQL数据库中建立两张数据表。一张数据表保存用户名和密码,用于登陆验证,另一张保存用户权限等基本信息。
2.提交表单登陆时,先在数据库中查找该用户存不存在,若不存在,报错,存在,则验证密码,密码错误则报错,若密码正确,登陆显示所有存储在数据库中的用户信息和当前登陆用户名。
3.在用户进行添加,删除操作时,先判断权限是否足够,有权限则完成相应操作,修改数据库内容,否则提示没有权限
具体实现
1.登陆页面
">
用户名:
密码:
2.连接数据库对登陆名和密码进行验证
//登陆处理
if(isset($_POST[''submit'']))
{
//用户名输入为空
if($_POST[''user_name'']=='''')
//调用javascript函数动态提醒
echo"dis_alert(\"用户名\",1);";//密码输入为空
if($_POST[''password'']=='''')
//调用javascript函数动态提醒
echo"dis_alert(\"密码\",1);";
//用户名与密码均不为空
$user_name=$_POST[''user_name''];
//链接数据库,从中读出用户名和密码
$db=mysql_connect("localhost","root","123456");
mysql_select_db("linyimin",$db);
$result=mysql_query("selectfromloginwhereuser_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"dis_alert(''密码错误'',3);";
}
//密码正确
else
{
session_unset();
session_start();
$_SESSION[''user_name'']=$_POST[user_name];
header("Location:http://localhost/display.php");
exit;
}
}
//用户输入的用户名不存在,报错
elseif($num==0)
{
//用户名不存在,报错
$user_name=$_POST[''user_name''];
echo"dis_alert(\"$user_name\",2);";
}
mysql_close($db);
}//登陆处理结束
输入错误提醒函数
//登陆错误提醒
functiondis_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);
}
}
3.成功登陆之后显示数据库中所有用户信息和当前登陆用户名
//获取登陆名
session_start();
$NAME=$_SESSION[''user_name''];
//连接数据库,获取数据并显示
functiondisplay()
{
global$NAME;
$db=mysql_connect("localhost","root","123456");
mysql_select_db("linyimin",$db);
$sql="selectfromadmin_info";
$result=mysql_query($sql);
//显示信息表
echo"当前用户:$NAME";
echo"";
//添加超链接
echo"ADD | ";
//修改添加超连接
echo"UPDATE | ";
//删除超链接
echo"DELETE | | ";
echo" ";
echo"";
//表头
echo"管理员权限表 ";
echo"姓名 | 权限 | 职务 | | ";
while($row=mysql_fetch_row($result))
{
//显示管理员信息并通过超链接调用处理函数
echo"$row[0] | ";
echo"$row[1] | ";
echo"$row[2] | ";
}
echo" ";
mysql_close($db);
}
显示效果如下:
4.修改,删除,添加操作的实现
修改,添加页面
">
姓名:
权限:
职务:
效果如下:
删除页面
"onsubmit="returnconfirm(''请确认删除'');">
姓名:
实现
//调用修改函数
if($_GET[update])
{
modify("update");
}
//调用添加函数
elseif($_GET[add])
{
modify("add");
}
elseif($_GET[delete])
{
modify("delete");
}
modify()函数的实现
//修改数据函数
/
点击修改超链接,跳转到修改页面
表单中,名字项指定要修改记录
权限和职务项为可修改内容
/
functionmodify($operation)
{
if(isset($_POST[''update'']))
{
//有root权限修改,修改
if($operation=="update"&&judge("update"))
{
$user_name=$_POST[user_name];
$sql="UPDATEadmin_infoSETpemission=''$_POST[pemission]'',position=''$_POST[position]''WHEREuser_name=''$user_name''";
mysql_query($sql);
mysql_close($db);
display();
}
//添加
elseif(judge("add")&&$operation=="add")
{
$user_name=$_POST[user_name];
$sql="insertintoadmin_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="deletefromadmin_infowhereuser_name=\"$user_name\"";
mysql_query($sql);
}
}
}
judge()函数的实现
//判断修改用户名是否存在和该用户是否具有权限
functionjudge($operation)
{
global$NAME;
//修改用户名
$user_name=$_POST[''user_name''];
//连接数据库,获取数据
$db=mysql_connect("localhost","root","123456");
mysql_select_db("linyimin",$db);
//该用户是否存在
$sql="selectfromadmin_infowhereuser_name=\"$user_name\"";
$result=mysql_query($sql);
$num=mysql_num_rows($result);
//输入名称不存在
if($num==0&&$operation!="add")
{
$user_name=$_POST[''user_name''];
echo"dis_alert(\"$user_name\",2);";
return0;
}
else
{
//判断有没有权限(只有root权限可以修改)
$sql="selectfromadmin_infowhereuser_name=\"$NAME\"";
$result=mysql_query($sql);
$pemission=mysql_result($result,0,''pemission'');
//没有root权限,报错
if(strcmp($pewww.tt951.commission,"root")!=0)
{
$user_name=$_POST[''user_name''];
echo"dis_alert(\"$user_name\",1);";
return0;
}
else
return1;
}
}
常用技巧记录
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="selectfromadmin_infowhere字段名=\"查找值\"";
$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="insertinto数据表(字段1,字段2,字段3)values(''值1'',''值2'',''值3'')";
mysql_query($sql);
删除
$sql="deletefrom数据表where字段名=\"查找值\"";
mysql_query($sql);
//关闭数据库
mysql_close($db);
3.表格提交前提醒
4.在php中调用javascript函数
echo"javascript函数;";
?>
|