PHP实现用户认证及管理完全源码


Posted in PHP onMarch 11, 2007

-- begin auth.inc --  
<?php  
$id = "xxxCOM";  
if(!isset($PHP_AUTH_USER)) {  
Header("WWW-Authenticate: Basic realm="$id"");  
Header("HTTP/1.0 401 Unauthorized");  
require('error.inc');  
exit;  
}  
$name = $PHP_AUTH_USER;  
$pass = $PHP_AUTH_PW;  
require("connect.inc");  
$query = "select * from auth where username='$name' && realm='$id'";  
$result = mysql_db_query("admin", $query);  
if(mysql_num_rows($result) == 0) {  
Header("WWW-Authenticate: Basic realm="$id"");  
Header("HTTP/1.0 401 Unauthorized");  
require('error.inc');  
exit;  
}  
$active = mysql_result($result,0,"active");  
if($active == 'no') {  
?>  
<HTML><HEAD>  
<TITLE>404 Not Found</TITLE>  
</HEAD><BODY>  
<H1>Not Found</H1>  
The requested URL  
<? echo $REQUEST_URI; ?>  
was not found on this server.<P>  
</BODY></HTML>  
<?php  
exit;  
}  
?>  
-- end auth.inc --  
-- begin connect.inc --  
<?php mysql_connect("localhost", "user", ""); ?>  
-- end connect.inc --  
-- begin error.inc --  
此文件存放错误信息及返回!  
-- end error.inc --  
-- 用户库结构(自己调整)--  
CREATE TABLE auth (  
id smallint(6) DEFAULT '0' NOT NULL auto_increment,  
username varchar(16) DEFAULT '' NOT NULL,  
lastname tinyblob,  
firstname tinyblob,  
password varchar(16),  
realm varchar(16),  
active char(3),  
PRIMARY KEY (id),  
UNIQUE id (id),  
UNIQUE username (username)  
);  
-- 用户库结构结束--  
-- 添加用户示例--  
insert into auth (username, lastname, firstname, password, realm, active) values ('admin','my','love','password','xxxCOM','yes');  
-- 结束--  
--用户管理程序开始 usermanage.php --  
<?php include("auth.inc"); ?>  
<?php  
if ($PHP_AUTH_USER != "admin") {  
Header("WWW-Authenticate: Basic realm="xxxCOM 客户认证"");  
Header("HTTP/1.0 401 Unauthorized");  
echo "Access Denied!n";  
exit;  
};  
if ($PHP_AUTH_PW != "mypassword") {  
Header("WWW-Authenticate: Basic realm="xxxCOM 客户认证"");  
Header("HTTP/1.0 401 Unauthorized");  
echo "Access Denied!n";  
exit;  
};  
if ($activate) {  
include("connect.inc");  
$query1 = "UPDATE auth SET active='yes' where id='$id'";  
$result1 = mysql_db_query("admin", $query1);  
if ($result1) {  
echo "<font size="+1">n";  
echo "$user activatedn";  
echo "<br>n<a href="$PHP_SELF">返回</a>\n";  
echo "</font>n";  
exit;  
} else {  
echo "<font size="+1">n";  
echo "Error: Unknown Errorn";  
echo "<br>n<a href="$PHP_SELF">返回</a>\n";  
echo "</font>n";  
exit;  
}  
}  
if ($deactivate) {  
include("connect.inc");  
$query2 = "UPDATE auth SET active='no' where id='$id'";  
$result2 = mysql_db_query("admin", $query2);  
if ($result2) {  
echo "<font size="+1">n";  
echo "$user deactivatedn";  
echo "<br>n<a href="$PHP_SELF">返回</a>\n";  
echo "</font>n";  
exit;  
} else {  
echo "<font size="+1">n";  
echo "Error: Unknown Errorn";  
echo "<br>n<a href="$PHP_SELF">返回</a>\n";  
echo "</font>n";  
exit;  
}  
}  
if ($delete) {  
include("connect.inc");  
$query3 = "delete from auth where id='$id'";  
$result3 = mysql_db_query("admin", $query3);  
if ($result3) {  
echo "<font size="+1">n";  
echo "$user 已删除!n";  
echo "<br>n<a href="$PHP_SELF">返回</a>\n";  
echo "</font>n";  
exit;  
} else {  
echo "<font size="+1">n";  
echo "Error: Unknown Errorn";  
echo "<br>n<a href="$PHP_SELF">返回</a>\n";  
echo "</font>n";  
exit;  
}  
}  
echo "<html>n";  
echo "<head>n";  
echo "<title>用户管理</title>n";  
echo "</head>n";
echo "<body>n";  
echo "<form method="post" action="$PHP_SELF">\n";  
echo "<table border="1">n";  
echo "<tr><th><font size="+1">Username</font></th><th><font size="+1">Real Name</font></th><th><font size="+1">Activated</font></th></tr>n";  
include("connect.inc");  
$query = "SELECT * FROM auth";  
$result = mysql_db_query("admin", $query);  
if ($result) {  
while ($r = mysql_fetch_array($result)) {  
$id = $r["id"];  
$username = $r["username"];  
$lastname = $r["lastname"];  
$firstname = $r["firstname"];  
$activated = $r["active"];  
if ($activated == "yes") {  
echo "<tr><td><font size="+1">$username</font></td><td><font size="+1">$lastname, $firstname</font></td><td><font size="+1">$activated</font></td><td><a href="$PHP_SELF?deactivate=yes&id=$id&user=$username">Deactivate</a></td><td><a href="$PHP_SELF?delete=yes&id=$id">Delete</a></td></tr>n";  
} elseif ($activated == "no") {  
echo "<tr><td><font size="+1">$username</font></td><td><font size="+1">$lastname, $firstname</font></td><td><font size="+1">$activated</font></td><td><a href="$PHP_SELF?activate=yes&id=$id">Activate</a></td><td><a href="$PHP_SELF?delete=yes&id=$id">Delete</a></td></tr>n";  
}  
}  
}  
mysql_free_result($result);  
echo "</table>\n";  
echo "</body>\n";  
echo "</html>\n";  
?>  
-- usermanage.php 结束--

PHP 相关文章推荐
模仿OSO的论坛(二)
Oct 09 PHP
如何写php程序?
Dec 08 PHP
php Rename 更改文件、文件夹名称
May 24 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
php实现的双向队列类实例
Sep 24 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
php多重接口的实现方法
Jun 20 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 PHP
随时给自己贴的图片加文字的php代码
Mar 08 #PHP
php网页后退不再出现过期
Mar 08 #PHP
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 #PHP
php下实现农历日历的代码
Mar 07 #PHP
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 #PHP
用PHP 快速生成 Flash 动画的方法
Mar 06 #PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 #PHP
You might like
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP的几个常用加密函数
2016/02/03 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
js 内存释放问题
2010/04/25 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
Python可变参数函数用法实例
2015/07/07 Python
python 系统调用的实例详解
2017/07/11 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
python无序链表删除重复项的方法
2020/01/17 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
SQL注入攻击的种类有哪些
2013/12/30 面试题
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
公司会议开幕词
2015/01/29 职场文书
初中家长意见
2015/06/03 职场文书
惊天动地观后感
2015/06/10 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS