Если есть сайт и админ, который заполняет его содержимым - вычитал такой способ. Кажись для большинства случаев подойдет. Примерно так:
Файл config.php
Код |
<?php $host = "localhost"; $user = "root"; $pass = ""; $dbname = "auth_db"; ?> |
Код |
<?php include "config.php"; $conn = mysql_connect($host, $user, $pass); $query = "CREATE DATABASE $dbname"; mysql_query ($query, $conn); mysql_select_db($dbname, $conn); mysql_query(" CREATE TABLE userlist( id int(11) NOT NULL auto_increment, user varchar(16) NOT NULL default '', pass varchar(16) NOT NULL default '', PRIMARY KEY (id) ) "); mysql_query("INSERT INTO userlist VALUES ('1', 'admin', '12345')"); echo 'Ok. <a href="admin.php">Админка</a>'; ?> |
Код |
<?php require_once "config.php"; $conn = mysql_connect ($host, $user, $pass); mysql_select_db($dbname, $conn); ?> |
Код |
<?php include("db.php"); if (!isset($_SERVER['PHP_AUTH_USER'])) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } else { if (!get_magic_quotes_gpc()) { $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']); } $query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'"; $lst = @mysql_query($query); if (!$lst) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } if (mysql_num_rows($lst) == 0) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } $pass = @mysql_fetch_array($lst); if ($_SERVER['PHP_AUTH_PW']!= $pass['pass']) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } } ?> |
Код |
<?php include "lock.php"; echo 'Ура! Вы в админке.'; ?> |