php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点

在php中,可以使用Header函数做一些有趣的事情,用户验证就是其中一个很有意思的功能。具体用法:

Header("WWW-Authenticate: Basic realm="USER LOGIN"");

Header("HTTP/1.0 401 Unauthorized");

在页首设计这两个Header函数,页面在载入前会出现一个登录框,要求输入用户名和密码。习惯了在页面登录的我们,是否觉得这样的登录很原始,又很新奇呢?

为了获取从这个对话框中传来的用户名和密码,需要用到php提供的两个特殊变量$PHP_AUTH_USER和$PHP_AUTH_PW,要这样使用这两个特殊变量好像需要在php.ini中设置相关的选项,不然就只能像下面这样引用:

$_SERVER[‘PHP_AUTH_USER‘]

$_SERVER[‘PHP_AUTH_PW‘]

获取到用户提交上来的用户名和密码之后

<?php
if (!isset($_SERVER[‘PHP_AUTH_USER‘])) {
    header(‘WWW-Authenticate: Basic realm="My Realm"‘);
    header(‘HTTP/1.0 401 Unauthorized‘);
    echo ‘Text to send if user hits Cancel button‘;
    exit;
  } else {
    echo "<p>Hello {$_SERVER[‘PHP_AUTH_USER‘]}.</p>";
    echo "<p>You entered {$_SERVER[‘PHP_AUTH_PW‘]} as your password.</p>";
 }

这种方式实际上也是可以验证用户登录的,但是缺点是用户在输入用户名和密码时,http一直保持着链接,这样的后果会导致服务器压力过大

时间: 2024-10-09 05:17:05

php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点的相关文章

Header函数和PHP_AUTH_USER做用户验证

php Header PHP_AUTH_USER PHP_AUTH_PW 用户验证 在php中,可以使用Header函数做一些有趣的事情,用户验证就是其中一个很有意思的功能.具体用法: Header("WWW-Authenticate: Basic realm="USER LOGIN""); Header("HTTP/1.0 401 Unauthorized"); 在页首设计这两个Header函数,页面在载入前会出现一个登录框,要求输入用户名和密

php header函数的详解

header函数在php中是发送一些头部信息的, 我们可以直接使用它来做301跳转等,下面我来总结关于header函数用法与一些常用见问题解决方法. 发送一个原始 HTTP 标头[Http Header]到客户端.标头 (header) 是服务器以 HTTP 协义传 HTML 资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔. 1.重定向. Header("Location: http://blog.anepx.com"); exit; //在每个重定向之后都必须

php的header()函数前有echo输出情况分析

php的header()方法一般被用来告知浏览器做一些什么样的操作,比如跳转,刷新等等:而调用header方法前,如果使用echo输出一些内容,会发生什么情况呢?会对header函数有影响吗?我们实验来看看情况. 第一部分: 选择环境和版本 我们的测试选择的是LNNP,php的版本是5.3.8,相对较老的版本 第二部分:测试用例 <?php $str = "qwertyuiopasdfghjklzxcvbnm1234567890~!@#$%^&*()_+"; $time

header()函数

header()前不能有任何代码,即使有,也得用一个函数或关键字,让它不执行,否则header()函数无法执行 这个函数说白了是个跳转函数 跳转到指定页面(站内的或指定网址) 例: header('Location:http://www.baidu.com/'); 有几个小问题 1.Location   第一个字母大写 2.网址前必须加"http://",后面必须加"/" 3.Location:http://www.baidu.com/  前后必须加单引号 4.最后

PHP header函数的几大作用

先看看官方文档的定义 (PHP 4, PHP 5, PHP 7) header - 发送原生 HTTP 头 1 void header ( string $string [, bool $replace = true [, int $http_response_code ]] ) 参数: string 有两种特别的头.第一种以"HTTP/"开头的 (case is not significant),将会被用来计算出将要发送的HTTP状态码. 例如在 Apache 服务器上用 PHP 脚

php中header函数后是否应该有exit

通常有一下三种:  代码如下 复制代码 Location: xxxx:yyyy/zzzz Content-Type: xxxx/yyyy Status: nnn xxxxxx 常用实例 1.实现重定向(状态码302)  代码如下 复制代码 <?phpheader(”Location: http://www.111cn.net”);exit;?> 例子  代码如下 复制代码 <?phpheader("Location:http://www.111cn.net/");//

header函数使用

header('HTTP/1.1 200 OK'); //设置一个404头: header('HTTP/1.1 404 Not Found'); //设置地址被永久的重定向 header('HTTP/1.1 301 Moved Permanently'); //转到一个新地址 header('Location: http://www.example.org/'); //文件延迟转向: header('Refresh: 10; url=http://www.example.org/'); prin

http标头详解/即php中header函数应用解释

HTTP协议header标头详解 分类: Webkit Web Php C/C++ 2012-10-31 11:19 14366人阅读 评论(0) 收藏 举报 本文根据RFC2616(HTTP/1.1规范),参考 http://www.w3.org/Protocols/rfc2068/rfc2068 http://www.w3.org/Protocols/rfc2616/rfc2616 http://www.ietf.org/rfc/rfc3229.txt 通常HTTP消息包括客户机向服务器的请

PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)

转载 http://justcoding.iteye.com/blog/601117/ //定义编码header( 'Content-Type:text/html;charset=utf-8 '); //Atomheader('Content-type: application/atom+xml'); //CSSheader('Content-type: text/css'); //Javascriptheader('Content-type: text/javascript'); //JPEG