[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Страница белая после первой перезагрузки
Kaboom
Всем привет,

Товарищи знатоки, подскажите пожалуйста, как (в нижеприведённом коде) исправить ситуацию с вынужденным двойным обновлением страницы после срабатывания защиты от бутфорса:
Когда проходит заданное время ожидания, после нажатия "Обновить страницу", открывается белая пустота. И только после второго обновления, уже форма ввода логина и пароля.

Заранее благодарен

<?php
session_start ();
$db = mysqli_connect ('localhost', 'login', 'parol');
mysqli_select_db ($db, 'Baza');

$select = @mysqli_query ($db, "SELECT log, passw, ip, ip_del_time FROM test1");
if (!$select) exit ('#110');
$row = @mysqli_fetch_row ($select);
if (!$row) exit ('#111');

if (ini_get('register_globals')) exit ('Off Reg_globals');

if (!$_SESSION['bruteforce'])
{
$_SESSION['bruteforce'] = 0;
$_SESSION['bruteforce_t'] = time ();
$_SESSION['bruteforce_ip'] = $_SERVER['REMOTE_ADDR'];
}

$_SESSION['bruteforce']++;

if ((time() - $_SESSION['bruteforce_t']) > 19 ) unset ($_SESSION['bruteforce']);

if (!empty ($row[2]))
{
if ( (time() - $row[3]) < 19 )
{
exit ("IP try after 10 minutes");
}
else
{
$select = @mysqli_query ($db, "UPDATE test1 SET ip='', ip_del_time = '' WHERE log = 'log123'");
if (!$select) exit ("#112");
unset ($_SESSION['bruteforce']);
exit ();
}
}

if ($_SESSION['bruteforce'] > 3)
{
$select = @mysqli_query ($db, "UPDATE test1 SET ip='$_SESSION[bruteforce_ip]', ip_del_time = '$_SESSION[bruteforce_t]' WHERE log ='log123'");
exit("Try after 10 minutes");
}



?>

<!DOCTYPE html PUBLIC "-//W3G//DTD XHTML 1.0 Transnational//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-transnational.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type"content="text/html; charset=windows-1251" />
<
title>админка и защита от взлома</title>


<
body>

<
h1>Админка</h1>
<
div style="background-color:#D3D3D3; width:200px; padding:10px">
<
form method="post">
login:<br />
<
input name="log" type="text" /><br />
password:<br />
<
input name="passw" type="password" /><br /><br />
<
input type="submit" name="button" style="cursor:pointer" />
</
form>
</
div>

<?php
if ($_POST['button'])
{
if (!preg_match ("/test1\.ru/", $_SERVER['HTTP_REFERER'])) exit();

$log = $_POST['log'];
$passw = md5 ("fjfjhghgjfjffjdierjfnndbhdhdh".$_POST['passw']);

if ( ($log === $row[0]) and ($passw === $row[1]))
{
$_SESSION['auth'] = $log;
echo "Enter to admin -> <a href='admin.php' > admin </a> ";

}
else
{
return exit ('Not correct');
}

}



?>

</body>
</
html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.