介绍

介绍 -- 用法例子

Auth 指南

这个袖珍指南的目的是建立一个系统,这个系统能够容易地使用验证机制保护你的网站。

在需要保护的网站顶部放置下面的代码段:

Example 21-1. 典型的使用范例 PEAR::Auth

require_once "Auth.php";

function loginFunction()
{
    /**
     * Change the HTML output so that it fits to your
     * application.
     */
    echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
    echo "<input type=\"text\" name=\"username\">";
    echo "<input type=\"password\" name=\"password\">";
    echo "<input type=\"submit\">";
    echo "</form>";
}

$dsn = "mysql://user:password@localhost/database";
$a = new Auth("DB", $dsn, "loginFunction");

$a->start();

if ($a->checkAuth()) {
    /**
     * The output of your site goes here.
     */
}

这几行代码用例子展示了验证系统

上面第一行脚本包含了你的PEAR目录的文件,它包含了运行所需的所有代码. PEAR::Auth. 接下来,我们定义了一个函数显示一个登录表单,你的页面的访问者必须在这里输入他的登录数据。你可以改变这个函数里所有的 HTML 格式。

因为我们应该使用一个数据库检验登录数据,我们现在创建一个变量 $dsn, 它包含了一个有效的DNS字符串,这个DNS字符用来经由 PEAR::DB连接数据。 至于是默认的数据库表方案或者使用不同的贮藏容器, 请看下一节更多的信息.

然后我们创建了一个验证对象authentication。第一个参数定义贮藏容器的名称。因为我们想要使用数据库驱动的贮藏容器,我们把"DB"传递到这里。第二歌参数试容器驱动程序的连接参数。我们使用先前定义的DSN字符串。第三个参数是我们在脚本开头定义的函数的名称。这个函数显示了登录表单。

现在我们的验证对象已经初始化了,我们需要检查用户是否已经登录,这就要通过方法 checkAuth(). 如果它返回 TRUE, 我们就可以把我们的页面传送给用户.

在下面的一节中我们将介绍关于函数PEAR::Auth更多的细节。

下面的SQL语句在MySQL默认数据库验证方案中创建了一个可用的表:

CREATE TABLE auth (
   username VARCHAR(50) default '' NOT NULL,
   password VARCHAR(32) default '' NOT NULL,
   PRIMARY KEY (username),
   KEY (password)
);

这是验证工作需要的表和字段名称. 使用MD5对密码进行加密是 PEAR::Auth默认的加密方法, 密码长度必须少于32个字符.当使用其他的加密方法例如 DES ("UNIX crypt"), 密码长度应做相应的变化。