社区
基础编程
帖子详情
php+apache用户认证问题
global_boy
2002-12-06 10:51:37
PHP以模块方式跑在apache下,想以MySQL数据库储存用户帐户信息;
用PHP调用apache作用户认证,在网上搜索了一篇文章(http://www.5xsoft.com/data/200107/2609201001.htm);
按照他说的作,总是不成功,不知问题出在哪里,请大家帮忙;
:)
...全文
40
16
打赏
收藏
php+apache用户认证问题
PHP以模块方式跑在apache下,想以MySQL数据库储存用户帐户信息; 用PHP调用apache作用户认证,在网上搜索了一篇文章(http://www.5xsoft.com/data/200107/2609201001.htm); 按照他说的作,总是不成功,不知问题出在哪里,请大家帮忙; :)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
phpteam
2002-12-11
打赏
举报
回复
if(!isset($PHP_AUTH_USER))
==>
if(empty($PHP_AUTH_USER))
试试看
bombshell
2002-12-08
打赏
举报
回复
<?
if(!isset($PHP_AUTH_USER))
{
header("WWW-Authenticate:Basic realm=\"穿越时光\"");
header("HTTP/1.0 401 Unauthorized");
echo "身份验证失败,您无权登录本站!";
exit;
}
if(!mysql_pconnect("myhost","webuser","password"))
{
echo "无法连接数据库";
exit;
}
$sql = "select name,password,class from access where name='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'";
$result = mysql_db_query("myweb",$sql);
$row = mysql_fetch_array($result);
if(!$row)
{
header(("WWW-Authenticate:Basic realm=\"穿越时光\"");
header("HTTP/1.0 401 Unauthorized");
echo "身份验证失败,您无权登录本站!";
exit;
}
数据库为myweb
数据表是:access
create table access(
id int(9) not null auto_increment,
name varchar(20) not null,
password varchar(10) not null,
class char(2) default'0' not null,
primary key(id)
);
shuixin13
2002-12-08
打赏
举报
回复
没有任何错误消息;??
有设置使Apache返回错误信息吗
可乐加水
2002-12-08
打赏
举报
回复
我觉得可能有两个原因:
1、数据库连接问题,可能你的数据库连接不成功,单独编写一个数据库连接的程序测试一下,看看能不能从数据库里面取出数据并显示出来
2、变量传递问题
global_boy
2002-12-08
打赏
举报
回复
没有任何错误消息;
能出现“验证框”;
但,无论如何也验证不通过;
:)
bombshell
2002-12-08
打赏
举报
回复
提示什么错误呀
global_boy
2002-12-07
打赏
举报
回复
现在是浏览器能谈“验证框”,但无论如何也验证不通过。
可乐加水
2002-12-07
打赏
举报
回复
<?php
function authenticate() {
Header('WWW-authenticate: basic realm="会员区"');
Header('HTTP/1.0 401 Unauthorized');
echo "你必须输入正确的用户名和口令。\n";
exit;
}
function CheckUser($uname, $pwd) {
if ($uname == "" || $pwd == "") return 0;
$query = "SELECT username,password FROM users WHERE username='$uname' and password=password('$pwd')";
$db_id = mysql_connect('localhost', 'root', 'mypwd');
mysql_select_db('member',$db_id);
$result = mysql_query($query, $db_id);
$num=mysql_num_rows($result);
mysql_close($db_id);
if ($num>0) {
return 1; // 有效登录
} else {
return 0; // 无效登录
}
}
while($PHP_AUTH_USER==""||$PHP_AUTH_PW=="")
{
authenticate();
while(!CheckUser($PHP_AUTH_USER,$PHP_AUTH_PW))
authenticate();
}
echo "username".$PHP_AUTH_USER." password".$PHP_AUTH_PW;
?>
这样才行
global_boy
2002-12-07
打赏
举报
回复
要验证的页内容:
<?php
require('auth.inc');
if (CheckUser($PHP_AUTH_USER,$PHP_AUTH_PW)==0) {
authenticate();
} else {
echo "这是合法用户要访问的网页。"; //将此行改为向合法用户输出的网页
}
?>
global_boy
2002-12-07
打赏
举报
回复
auth.inc 内容:
<?php
function authenticate() {
Header('WWW-authenticate: basic realm="会员区"');
Header('HTTP/1.0 401 Unauthorized');
echo "你必须输入正确的用户名和口令。\n";
exit;
}
function CheckUser($uname, $pwd) {
if ($uname == "" || $pwd == "") return 0;
$query = "SELECT username,password FROM users WHERE username='$uname' and password=password('$pwd')";
$db_id = mysql_connect('localhost', 'root');
mysql_select_db('member',$db_id);
$result = mysql_query($query, $db_id);
$num=mysql_num_rows($result);
mysql_close($db_id);
if ($num>0) {
return 1; // 有效登录
} else {
return 0; // 无效登录
}
}
?>
global_boy
2002-12-07
打赏
举报
回复
我建立的MySQL数据库结构:
mysql> describe users;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES | | NULL | |
| password | varchar(20) | YES | | 1234 | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.07 sec)
tntxhy
2002-12-07
打赏
举报
回复
同意,安全起见还是用$_SERVER
adz
2002-12-07
打赏
举报
回复
还是不要改register_globals的好,以$_SERVER['PHP_AUTH_USER']及$_SERVER['PHP_AUTH_PW']来获取输入用户名及密码.
phpteam
2002-12-07
打赏
举报
回复
同意楼上的,先看看register_globals吧
可乐加水
2002-12-07
打赏
举报
回复
先看看php.ini文件里面register_global=on/off
这一项,改成register_global=on
然后重新启动apache
如果还不行检查CheckUser($uname, $pwd)这个函数写的对不对
shuixin13
2002-12-06
打赏
举报
回复
能见见你的代码吗,
是你的PHP不能登录服务器还是其它的什么原因?
出错提示呢
那篇文章已拜读
有这样一个想法
用于验证的SQL
$query = "SELECT username,password FROM users WHERE username='$uname' and password=password('$pwd')";
如果我这样写入用户名与密码呢
$uname = 123' Or 'a'='a
$pwd = 123
$query = "SELECT username,password FROM users WHERE username='123' Or 'a'='a' and password=password('123')";
???
我想返回值应该有很多吧
【
php
毕业设计】基于
php
+mysql+
apache
的subversion
用户
管理系统设计与实现(毕业论文+程序源码)——
用户
管理系统
大家好,今天给大家介绍基于
php
+mysql+
apache
的subversion
用户
管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。文章目录: 本系统主要是基于Web的subversion系统的
用户
管理系统。在开源软件世界,并行版本系统(cvs)一直是版本控制长久以来的唯一选择,但是,和其它许多工具一样,cvs开始显露出衰老的迹象,而subversion,正是以cvs继任者的面目出现的新型版本控制系统。但是,它的
用户
管理机制却是很差,本系统正是基于这个现实。实现友好的subversion用
【
php
毕业设计】基于
php
+mysql+
apache
的在线购物网站设计与实现(毕业论文+程序源码)——在线购物网站
大家好,今天给大家介绍基于
php
+mysql+
apache
的在线购物网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。文章目录: 项目难度:中等难度 适用场景:相关题目的毕业设计 配套论文字数:13738个字32页 包含内容:整套源码+完整毕业论文提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。1 引言 1.1 系统的开发背景 1.1.1 在线购物的发展 省略1.1.2 产品报价系统的现状 产品报价系统的开发,主要是用来帮助消费者在最短的时间内通过产品参数的比较,找到自己需
【
php
毕业设计】基于
php
+mysql+
apache
的二手物品交易网站设计与实现(毕业论文+程序源码)——二手物品交易网站
大家好,今天给大家介绍基于
php
+mysql+
apache
的二手物品交易网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。文章目录: 二手信息网站,为二手物品交易提供了网上平台。如今,随着电子商务的不断发展完善,大学校园也需要一个能为学生提供二手物品交易的专用网站,以便发布各种商品信息。本设计具有一般电子商务的功能,且体现出校园风格。该系统提供的功能包括注册、查询信息、发布信息、找回密码等。本系统的特点在于应用了
PHP
技术。它是一种简单的动态脚本语言,具有开放源码、执行速度快的特点。该技术还支持
LAMP(Linux+
Apache
+MySQL+
PHP
)环境介绍、配置、搭建
文章目录写在开头的话LAMP的简要介绍部署方式LAMP环境搭建环境准备准备本地yum源安装编译文件关闭防火墙和SElinux环境搭建安装依赖包安装
Apache
安装mysql安装依赖包安装mysql安装
PHP
PHP
基本安装
php
附加扩展安装CentOS7上搭建LAMP环境准备编译安装写在最后的话: 这里是一段防爬虫文本,请读者忽略。 本文原创首发于CSDN,作者IDYS 博客首页:https://blog.csdn.net/weixin_41633902/ 本文链接:https://blog.csdn.n
关于
apache
+
php
用户
验证
二.上面直接用
apache
配置登录拦截,项目所有的路由都被登录拦截,但是有些路由不希望被登录拦截只能在
php
做登录拦截。2.直接在
php
用exec来执行验证账号和密码登录,用$_SESSION来记录登录
用户
。2.上面配置好在
php
获取
用户
信息(登录
apache
会拦截)1.
apache
只管用.htpasswd 配置
用户
密码就行。一.直接在
apache
配置配置
用户
信息。1.
apache
配置可以参考外部文档。
基础编程
21,891
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章