PHP实现用户认证及管理完全源码
程序员文章站
2023-11-30 21:22:40
-- begin auth.inc --
-- 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
$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 结束--