[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Улучшение кода
Страницы: 1, 2, 3, 4, 5
maax
Есть вот такой вот файл авторизации ,все вроде работает как надо но все равно чего то в нем не хватает или наоборот может что убрать,что посоветуете изменить? или не париться и оставить как есть

<?php
session_start();

if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }


if (empty($login) or empty($password))
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
$login = stripslashes($login);
$login = htmlspecialchars($login);

$password = stripslashes($password);
$password = htmlspecialchars($password);

$login = trim($login);
$password = trim($password);

include ("bd.php");

$ip=getenv("HTTP_X_FORWARDED_FOR");
if (empty($ip) || $ip=='unknown')
{
$ip=getenv("REMOTE_ADDR");
}

$cnt->query("DELETE FROM oshibka WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");

$result = $cnt->prepare('SELECT col FROM oshibka WHERE ip = ? LIMIT 1');
$result->bindParam(1, $ip);
$result->execute();
$myrow = $result->fetch();
if ($myrow['col'] > 2)
{
exit ("Вы набрали логин или пароль неверно 3 раза. Подождите 15 минут до следующей попытки.");

}

$password = md5($password);
$password = strrev($password);

$sql[':login'] = $login;
$sql[':password'] = $password;

$query = $cnt->prepare("SELECT * FROM users WHERE `login` = :login AND `password` = :password AND `activation` = 1 LIMIT 1");
$query->execute($sql);
$myrow = $query->fetch();

if (empty($myrow['id']))
{

$tmp = $cnt->query("SELECT `ip` FROM oshibka WHERE `ip` = '".$ip."' LIMIT 1")->fetch(PDO::FETCH_NUM);

if ($ip == $tmp[0])
{
$row = $cnt->prepare("UPDATE oshibka SET col = col + 1,date = NOW() WHERE ip = ?");
$row->bindParam(1, $ip);
$row->execute();
}

else

{
$row = $cnt->prepare("INSERT INTO oshibka (ip,date,col) VALUES ('$ip',NOW(),'1')");
$row->bindParam(1, $ip);
$row->execute();
}

exit ("Извините, введённый вами логин или пароль неверный.");

}

else

{

$_SESSION['sid']=$myrow['id'];

if (isset($_POST['autovhod']))
{
setcookie("auto", "yes", time()+9999999);
setcookie("sid", $myrow['id'], time()+9999999);}
}


echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>";

?>
Быстрый ответ:

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