贡献一个我的小东东:PHPMYADMIN多用户登录

htdqy 2004-03-15 09:09:39
BY scf2 (bwwscf2@163.com)
概述:
phpmyadmin是一个基于PHP的mysql数据库管理管理工具,phpMyAdmin功能十分强大,几乎可以通过它对MYSQL数据库做任何事。特别适用于初学者,更适用于在虚拟主机上管理数据库。但phpmyadmin中并没有提供一个安全的验证控制,任何人只要知道你的管理目录,就能随意修改删除你的数据库。为此笔者根据自己在日常工作中积累的经验,为phpmyadmin设计了以下的验证页面,通过它可实现多用户的身份验证,希望能给大家带来小小帮助。当然,本文只提供了一个简单的思维,大家可根据自己的实际需求来设计更个性化的验证代码。

第一步:安装phpmyadmin
安装之前,请先配置好你的WEB服务器,IIS和apache均可。
目前phpmyadmin的最新版本为2.5.5,到百度或google上搜索就会有一把下载地址,随便down一个下来并将其解压到你的网站的某个目录下,配置好它并让其可以直接使用。

第二步:建立多用户登录对应的表(myuser)
myuser表结构如下,结构很简单,一目了然:

CREATE TABLE `myuser` (
`userid` int(11) NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
`realname` varchar(20) NOT NULL,
`passwd` varchar(20) NOT NULL,
PRIMARY KEY (`userid`)
)
INSERT INTO `myuser` (`userid`, `username`, `realname`, `passwd`) VALUES (1, 'test', '测试', 'dGVzdA==');

将以上SQL语句在MYSQL中执行。

第三步:加密你的phpmyadmin
主要的思路:
通过session验证身份后,才能够执行phpmyadmin目录下的其余代码。
这一步是关键,具体的操作及相应代码见下:
<?php
/* --------------------------------------------------------------
文件: login.php
描述: 生成登录表单并进行登录判断
放置于你的phpmyadmin目录下面。当然也可以放到其它能够访问到的目录下。
---------------------------------------------------------------- */
session_start();
if(isset($_POST["Submit"])) { //如果提交表单
$passwd=base64_encode($_POST["passwd"]); //数据库中的密码是用base64编码后保存的,这儿图方便将用户输入的密码用base64编码。
$conn=mysql_connect("localhost","root",""); //连接MYSQL数据库
mysql_select_db("test"); //选择数据库test
$allow=mysql_query("SELECT * FROM `myuser` WHERE `username`='$_POST[username]' AND `passwd`='$passwd'");
//检查用户由表单输入的用户名和密码是否和数据库中的一致
$result=mysql_fetch_object($allow);
if(!$result) { //如果没有找到匹配的记录
echo "<meta http-equiv='refresh' content='1;URL=login.php'>\n"; //转向到登录页
exit; //终止程序继续执行
}
else { //否则……
$_SESSION["manage"]=$username; //注册session变量manage
echo "<hr size=\"0\">\n<center>成功登陆</center>\n<hr size=\"0\">\n";
//输出提示信息。“\n”的作用是将生成的HTML语句在打定处换行,以方便阅读
echo "<meta http-equiv='refresh' content='1;URL=index.php'>\n"; //转向
exit;
}
}

//--------- 这里处理注销指令 -------------->
if(isset($_GET["action"]) && $_GET["action"]=="logout") {
// 如果设置了action变量,并且它的值为logout
session_unset(); //将已经注册session的值清空
session_destroy(); //注销session
echo "<meta http-equiv='refresh' content='1;URL=login.php'>";
exit;
}
?>

<!-- PHPmyadmin 多用户登录表单 Designed by htdqy@yahoo.com.cn -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>多用户登录表单</title>
<script language="javascript">
function Check() {
//用JS检查用户表单输入
var a = form1.username;
b = form1.passwd;
if(a.value=='' || a.value.length<2) {
alert ("错误:\n\n没有输入用户名或用户名过短!");
a.focus();
return false;
}
if(b.value=='') {
alert ("错误:\n\n请输入密码!");
b.focus();
return false;
}
}
</script>
</head>
<body bgcolor="#eeeeee" onLoad="form1.username.focus();">
<table width="230" border="1" align="center" bordercolordark="#ffffff" bordercolorlight="#666666" cellpadding="4" cellspacing="0">
<form name="form1" action="" method="post" onSubmit="return Check();">
<tr bgcolor="#FFFFFF">
<td bgcolor="#D4D0C8">用户登录</td>
</tr>
<tr>
<td align="center"><label for="username">用户名(<u>U</u>):</label>
<input name="username" type="text" id="username" onkeydown="if(event.keyCode==13) event.keyCode=9" accesskey="U" size="12"></td>
</tr>
<tr>
<td align="center"><label for="passwd">密 码(<u>P</u>):</label>
<input name="passwd" type="password" id="passwd" accesskey="P" size="12"></td>
</tr>
<tr>
<td align="center">
<input name="Submit" type="submit" id="submit" accesskey="L" value="登录(L)">
 <input name="reset" type="reset" id="reset" accesskey="C" value="重置(C)"></td>
</tr>
</form>
</table>
</body>
</html>
<!-- end loginform -->

在你的phpmyadmin目录下的index.php , left.php , main.php里面做以下修改:
将如下代码加入到以上三个页面的顶端:

<?php
session_start();
if(!$_SESSION["manage"]) { //如果没有设置session变量manage
echo "<meta http-equiv='refresh' content='0;URL=login.php'>"; //转向
exit();
}
?>

并在left.php页面的最底部加上如下一句(该句为在左边框下部添加一个注销登录的链接):
<center>
<input type="button" value="注销(L)" accesskey="L" onclick="parent.location.href='login.php?action=logout'">
</center>

第四步:测试
上传修改后文件到你的网站,在浏览器中输入http://你的网站/phpmyadmin/ 现在就需要你输入用户名(test)和密码(test)才能登录管理数据库了,你的phpmyadmin从此多了一个多用户的session身份验证,增强了您数据的安全!
(如果嫌修改麻烦,也可到如下地址下载笔者已修改好的phpmyadmin: http://vox6000.com/scf2/phpmyadmin.rar)
本人才疏学浅,代码有点垃圾,请见谅! 不过写得很详细,方便和我级别相当的菜鸟们研究,也欢迎高手们指点 ^o^
...全文
162 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧