
05.07.2008, 00:29
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 413
Провел на форуме: 1301036
Репутация:
1334
|
|
На100ящий
авторизация на php
PHP код:
<?php
// Данный файл всегда будит "включаться" в другие файлы
// директивой include поэтому следует запретить его самостоятельный вызов
// из строки запроса путём указания его имени
// Если не определена константа IN_ADMIN – завершаем работу скрипта
if(!defined("IN_ADMIN")) die;
// Начинаем сессию
session_start();
// Помещаем содержимое файла в массив
$access = array();
$access = file("access.php");
// Разносим значения по переменным – пропуская первую строку файла - 0
$login = trim($access[1]);
$passw = trim($access[2]);
// Проверям были ли посланы данные
if(!empty($_POST['enter']))
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['passw'] = $_POST['passw'];
}
// Если ввода не было, или они не верны
// просим их ввести
if(empty($_SESSION['login']) or
$login != $_SESSION['login'] or
$passw != $_SESSION['passw'] )
{
?>
<a href="index.php">Вернуться в администрирование гостевой книги</a>
<form action=index.php method=post>
Логин <input class=input name=login value="">
Пароль <input class=input name=passw value="">
<input type=hidden name=enter value=yes>
<input class=button type=submit value="Вход">
<?php
die;
}
?>
Файл с логином и паролем access.php
PHP код:
<?php die; ?>
admin
passw
Теперь следует создать управляющий файл, через который будем получать доступ ко всем остальным файлам.
PHP код:
<?php
// Указываем что данный файл главный,
// определяя константу IN_ADMIN, так как
// нигде больше эта константа не определяется,
// но везде проверяется её существование, работать
// с панелью администрирования можно только
// через файл index.php
define("IN_ADMIN", TRUE);
// Проверяем права доступа
include "auth.php";
// Получаем параметр op из URL
$op = $_GET['op'];
// Выбираем нужное нам действие
switch ($op)
{
case 'main' : include "main.php"; break;
case 'delp' : include "delpost.php"; break;
case 'editform' : include "editcommentform.php"; break;
case 'edit' : include "editcomment.php"; break;
case 'hide' : include "hide.php"; break;
case 'show' : include "show.php"; break;
default : include "main.php";
}
?>
Теперь нужно запретить доступ к остальным скриптам, от прямого вызова.
PHP код:
<?php
if(!defined("IN_ADMIN")) die;
?>
Нужно поменять еще пару строк, чтобы все ссылки заменить на вызов файла index.php.
PHP код:
<?php
if(!$guest['hide']) $showhide = "<a class='menu' href=index.php?op=hide&id_msg=".$guest['id_msg']."&start=$start title='Скрыть сообщение из списка выводимых на сайте'>Скрыть сообщение</a>";
?>
а строки с 63 по 70 заменить на:
PHP код:
<?php
echo "<p class='menu'><a class='menu' href=index.php?op=editform&id_msg=".$guest['id_msg']."&start=$start title='Редактировать сообщение'>Редактировать</a>";
// Ссылка на правку сообщений
echo " ".$showhide;
// Ссылка на удаление сообщений
echo " <a class='menu' href=index.php?op=delp&id_msg=".$guest['id_msg']."&start=$start title='Удалить сообщение'>Удалить сообщение</a>";
echo "</p>";
?>
Файл editcommentform.php. Заменить строку 29 на:
PHP код:
<form action=index.php?op=edit method=post>
|
|
|