Класс
<?php class Func { var $search = array ( "'<script[^>]*?>.*?</script>'si", "'<[\/\!]*?[^<>]*?>'si", '["]', "'([\r\n])[\s]+'", "'&(quot|#34);'i", "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(\d+);'e"); var $replace = array ( "", "", "", "\\1", "\"", "&", "<", ">", " ", "chr(161)", "chr(162)", "chr(163)", "chr(169)", "chr(\\1)"); function parser($txt) { return preg_replace($this->search, $this->replace, $txt); } } ?>
Код авторизации:
<? session_start (); session_register ( 'aut' ); session_register ( 'login' ); $fun = new Func(); // Проверяем заполнены ли строки Логин и Пароль if (! empty ( $_POST ['logi'] ) or ! empty ( $_POST ['pass'] )) { // Проверяем через класс $logi = $fun->parser( trim ( $_POST ['logi'] ) ); $pass = $fun->parser( trim ( $_POST ['pass'] ) ); $query = "SELECT * FROM users WHERE login = '" . mysql_real_escape_string($logi) . "' LIMIT 1"; $result = mysql_query ( $query ); $num = mysql_num_rows ( $result ) or die(mysql_error()); $row = @mysql_fetch_array ( $result ); if ($num == '0') { $_SESSION ['aut'] = '0'; $_SESSION ['login'] = 'Гость'; echo 'Извините, но такого пользователя не существует.'; echo '<meta http-equiv="refresh" content="3 url=/usercp/">'; } else { if ($row ['pass'] != md5 ( $pass )) { echo 'Извините, но пароль не верный!'; } else { if ($row ['adm'] == '1') { $_SESSION ['aut'] = '2'; $_SESSION ['login'] = $logi; echo 'Вы вошли в систему как администратор ' . $logi . ', сейчас вы будете перенаправлены'; echo '<meta http-equiv="refresh" content="3 url=/admin/">'; } else { $_SESSION ['aut'] = '1'; $_SESSION ['login'] = $logi; echo 'Вы вошли в систему как пользователь ' . $logi . ', сейчас вы будете перенаправлены'; echo '<meta http-equiv="refresh" content="3 url=/main/">'; } } } } else { echo 'Заполнителя правильно форму входа.'; } ?>
Это как из вариантов)
p.s понравилось, поставь репу)
Один из людей заказывал просто дизайн, на строительную тематику.
Вот что получилось.
Строо не судите, смотрите тема, как называется "дизайнер - новичок".
Вот
Можно за отзыв сайт?
Деаю сейчас для одного выложу...покажу..=)
Для себя я рисовал!
Посмотрите скрипт..с паролями так сделано..только без соли
Вот итоговый вариант
$fun = new Func(); if (! empty ( $_POST ['logi'] ) or ! empty ( $_POST ['pass'] )) { $logi = $fun->parser( trim ( $_POST ['logi'] ) ); $pass = $fun->parser( trim ( $_POST ['pass'] ) ); $query = "SELECT * FROM users WHERE login = '" . mysql_real_escape_string($logi) . "' LIMIT 1"; $result = mysql_query ( $query ); $num = mysql_num_rows ( $result ) or die(mysql_error()); $row = @mysql_fetch_array ( $result ); if ($num == '0') { $_SESSION ['aut'] = '0'; echo 'Извините, но такого пользователя не существует.'; echo '<meta http-equiv="refresh" content="3 url=/usercp/">'; } else { if ($row ['pass'] != md5 ( $pass )) { echo 'Извините, но пароль не верный!'; } else { if ($row ['adm'] == '1') { $_SESSION ['aut'] = '2'; echo 'Вы вошли в систему как администратор ' . $logi . ', сейчас вы будете перенаправлены'; echo '<meta http-equiv="refresh" content="3 url=/admin/">'; } else { $_SESSION ['aut'] = '1'; echo 'Вы вошли в систему как пользователь ' . $logi . ', сейчас вы будете перенаправлены'; echo '<meta http-equiv="refresh" content="3 url=/main/">'; } } } } else { echo 'Заполнителя правильно форму входа.'; }
Так , что делать, то?=)
Как защитить код? вот и сам код
if (! empty ( $_POST ['logi'] ) or ! empty ( $_POST ['pass'] )) { $logi = trim ( strip_tags ( $_POST ['logi'] ) ); $pass = trim ( strip_tags ( $_POST ['pass'] ) ); $query = "SELECT * FROM users WHERE login = '" . $logi . "' LIMIT 1"; $result = mysql_query ( $query ); $num = mysql_num_rows ( $result ); $row = @mysql_fetch_array ( $result ); if ($num == '0') { $_SESSION ['aut'] = '0'; echo 'Извините, но такого пользователя не существует.'; echo '<meta http-equiv="refresh" content="3 url=/usercp/">'; } else { if ($row ['pass'] != md5 ( $pass )) { echo 'Извините, но пароль не верный!'; } else { if ($row ['adm'] == '1') { $_SESSION ['aut'] = '2'; echo 'Вы вошли в систему как администратор ' . $logi . ', сейчас вы будете перенаправлены'; echo '<meta http-equiv="refresh" content="3 url=/admin/">'; } else { $_SESSION ['aut'] = '1'; echo 'Вы вошли в систему как пользователь ' . $logi . ', сейчас вы будете перенаправлены'; echo '<meta http-equiv="refresh" content="3 url=/main/">'; } } } } else { echo 'Заполнителя правильно форму входа.'; }
тоесть если у меня /login/ а файл где-нибудь в /includes/log/login.php, то просто делается так /login/SQL Иъекция ?