vave
Полезный
- Регистрация
- 22 Июн 2007
- Сообщения
- 467
- Реакции
- 16
- Автор темы
- #1
Есть такой вот код
Как в этом коде завершить сессию?
PHP:
<?
class PHPruAuth
{
var $LOGIN;
var $PASSWORD;
var $USER;
var $PASS;
function Error()
{
echo '<CENTER><BR><BR><FONT COLOR=RED><B>ACCESS DENIED!...</B></FONT>';
exit("<BR>\n</BODY>\n</HTML>");
}
function CheckUser()
{
$this->LOGIN = 'admin'; // логин администратора
$this->PASSWORD = 'pass'; // пароль администратора
if($this->LOGIN === $_SERVER["PHP_AUTH_USER"] && $this->PASSWORD === $_SERVER["PHP_AUTH_PW"])
{
$_SESSION["admin_online"] = 'true';
$AUTH = array(trim($this->LOGIN),trim($this->PASSWORD));
return ($AUTH);
}
$user = file('users.php');
foreach($user as $value)
{
list($this->USER,$this->PASS,$email,$host,$web,$uslugi,$code,$time) = explode("^^",$value);
if(($this->USER === $_SERVER["PHP_AUTH_USER"]) && ($code == 'yes'))
{
$AUTH = array(trim($this->USER),trim($this->PASS));
return ($AUTH);
}
}
}
function PHPruAuth()
{
if(isset($_SERVER["PHP_AUTH_USER"]))
$AUTH = $this->CheckUser();
if ( (!isset($_SERVER["PHP_AUTH_USER"])) || ! (($_SERVER["PHP_AUTH_USER"] === $AUTH[0]) && ( $_SERVER["PHP_AUTH_PW"] === $AUTH[1] )) )
{
header("HTTP/1.0 401 Unauthorized");
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("WWW-Authenticate: Basic Realm=\"PROTECTED AREA\"");
$this->Error();
}
}
}
$MEMBER = new PHPruAuth;
?>
<?
function ListUser()
{
$list = file('users.php');
$all = count($list);
?>
<?
$act = 0;
foreach($list as $string)
{
list($user,$pass,$email,$host,$web,$uslugi,$code,$time) = explode("^^",$string);
if ($code != 'yes')
{
if($time > time())
$txt = '<FONT COLOR=#66CC00>ожидаем до</FONT> ';
else
$txt = '<FONT COLOR=#FF0000>на удаление</FONT> ';
}
else
{
$txt = ''; $act++;
}
echo '<TR ALIGN=CENTER BGCOLOR=#F8F8F8><TD >'.$user.'</TD><TD>'.$pass."</TD><TD>".trim($email)."</TD><TD>".trim($host)."</TD><TD>".trim($web)."</TD><TD>".trim($uslugi)."</TD><TD>".$txt.date("d.m.Yг.",$time)."</TD><TD><A onclick=\"return confirm('Удалить клиента из базы?')\" HREF='?user=del&login=".$user."' TITLE='Удалить'><FONT COLOR='#FF0000'><img border='0' src='del.gif'></FONT></A></TD><TD><A HREF='?user=edit&login=".$user."' TITLE='Редактировать'><FONT COLOR='#FF0000'><img border='0' src='edit.gif'></FONT></A></TD></TR>\n";
}
?>
</TABLE>
<BR><font face="Open Sans Condensed" color="#3366CC">Всего клиентов -</font>
<?
echo '<B>'.$all.'</B>';
}
function AddUser()
{
?>
<?
}
function DelUser()
{
$list = file('users.php');
for($a = 0; $a < count($list); $a++)
{
list($user,$pass,$email,$host,$web,$uslugi,$code,$time) = explode("^^",$list[$a]);
if($user == trim($_GET["login"]))
{
$fix = 1;
unset($list[$a]);
echo 'Пользователь '.$user.' удален!';
break;
}
}
if(!isset($fix))
echo 'Ошибка. Пользователь '.$_GET["login"].' в базе не найден.';
else
{
$user_info = str_replace("\r","",join("",$list));
PHPruSave($user_info,'users.php','w+');
}
}
function PHPruSave($input,$file,$chmod='w+')
{
$fp = fopen($file,$chmod);
flock($fp,2);
fputs ($fp, $input);
flock($fp,3);
fclose($fp);
}
if (isset($_SESSION["admin_online"]))
{
ShowAdmin();
exit("\n</BODY>\n</HTML>");
}
function ShowAdmin()
{
?>
<?
if(isset($_POST["protect"]))
{
$check = file('users.php');
foreach($check as $string)
{
list($user,$pass,$email,$host,$web,$uslugi,$code,$time) = explode("^^",$string);
if(trim($_POST["login"]) == trim($user))
{
$fix = 1;
break;
}
}
if(!isset($fix))
{
$user_info = trim($_POST["login"]).'^^'.trim($_POST["pass"]).'^^'.trim($_POST["email"]).'^^'.trim($_POST["host"]).'^^'.trim($_POST["web"]).'^^'.trim($_POST["uslugi"]).'^^yes^^'.time()."\n";
PHPruSave($user_info,'users.php','a+');
echo 'Новый пользователь добавлен.';
unset($_GET["user"]);
}
else
{
echo 'Ошибка. Пользователь с таким логином уже есть.<BR><BR>';
}
}
//********************** редактируем юзера *********************
if(isset($_POST["edit"]))
{
$check = file('users.php');
for($a = 0; $a < count($check); $a++)
{
list($user,$pass,$email,$host,$web,$uslugi,$code,$time) = explode("^^",$check[$a]);
if(trim($_POST["login"]) == trim($user))
{
$fix = 1;
unset($check[$a]);
$user_info = str_replace("\r","",join("",$check));
PHPruSave($user_info,'users.php','w+');
break;
}
}
if(isset($fix))
{
$user_info = trim($_POST["login"]).'^^'.trim($_POST["pass"]).'^^'.trim($_POST["email"]).'^^'.trim($_POST["host"]).'^^'.trim($_POST["web"]).'^^'.trim($_POST["uslugi"]).'^^yes^^'.time()."\n";
PHPruSave($user_info,'users.php','a+');
echo 'Пользователь отредактирован.';
unset($_GET["user"]);
}
else
{
echo 'Ошибка. Пользователь с таким логином не существует.<BR><BR>';
}
}
function EditUser()
{
$list = file('users.php');
for($a = 0; $a < count($list); $a++)
{
list($user,$pass,$email,$host,$web,$uslugi,$code,$time) = explode("^^",$list[$a]);
if($user == trim($_GET["login"]))
{
echo 'test';
$fix = 1;
break;
}
}
if(!isset($fix))
echo 'Ошибка. Пользователь '.$_GET["login"].' в базе не найден.';
}
//**********************************************************
if(isset($_GET["user"]))
{
if($_GET["user"] == 'add')
AddUser();
elseif($_GET["user"] == 'list')
ListUser();
elseif($_GET["user"] == 'del')
DelUser();
elseif($_GET["user"] == 'edit')
EditUser();
}
?>
<?
}
?>
Как в этом коде завершить сессию?