Добавление комментариев отключено


17.10.2008   Андрей

.htpasswd предназначен для паролирования директорий а не сайтов. Ну он конечно подойдет, если вы один туда ходите, а если у вас есть партнеры, или модераторы, тогда что?.
Самый простой вариант это добавить в базу данных такую таблицу

CREATE TABLE IF NOT EXISTS `admin` (
`login` varchar(30) NOT NULL,
`passwd` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

и написать самый простой и легкий скриптик авторизации:
<?php
$login_screen = "<center><table border=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" cellpadding=\"0\" cellspacing=\"3\">
<form method=post action=/admin/><input type=hidden name=form value=sent><tr>
<td align=\"right\" valign=\"top\"><b>
<font face=\"$fontface\" size=\"2\">Логин</font>:</b></td>
<td align=\"left\" valign=\"top\">
<input type=\"text\" name=\"login\" size=\"25\" style=\"font-family: $fontface; font-size: 9pt; font-weight: bold\"></td>
</tr><tr><td align=\"right\" valign=\"top\">
<font face=\"$fontface\" size=\"2\"><b>Пароль:</b></font></td>
<td align=\"left\" valign=\"top\">
<input type=\"password\" name=\"passwd\" size=\"25\" style=\"font-size: 9pt; font-family: $fontface; font-weight: bold\"></td>
</tr><tr><td></td><td align=\"left\" valign=\"top\">
<input type=\"submit\" value=\"Вход\" style=\"font-family: $fontface; font-size: 9pt; font-weight: bold; float: right\"></td>
</tr></form></table></center>";
if ($_COOKIE['ref']) {
setcookie("ref", $_COOKIE['ref'], time()-964000);
}
if (!isset($_SESSION['asess_name']) || !isset($_SESSION['asess_passwd'])) {
if ($_POST['form'] == 'sent') {
if ($_POST['login'] == "" || $_POST['passwd'] == "") {
echo "<center>
<table>
<tr bgcolor=\"#CCCCCC\">
<td><b>Вход в админ панель</b></td>
</tr>
<tr bgcolor=\"#CCCCCC\">
<td><b>$login_screen</b></td>
</tr>
</table>
</center>";
echo("<script>alert('Логин и Пароль не могут быть пустыми!');</script>");
session_destroy();
mysql_close;
exit;
} else {
$_SESSION['asess_name'] = ($_POST['login']);
$_SESSION['asess_passwd'] = ($_POST['passwd']);
header("Location: /admin/");
}
mysql_close;
exit;
} else {
echo "<center>
<table>
<tr bgcolor=\"#CCCCCC\">
<td><b>Вход в админ панель</b></td>
</tr>
<tr bgcolor=\"#CCCCCC\">
<td><b>$login_screen</b></td>
</tr>
</table>
</center>";
session_destroy();
mysql_close;
exit;
}
} else {
$username = $_SESSION['asess_name'];
$pass = $_SESSION['asess_passwd'];
$q = "SELECT login FROM `admin`";
$resy = mysql_query($q);
while($row = mysql_fetch_array($resy)) {
$db_login = $row["login"];
};
$qt = "SELECT passwd FROM `admin`";
$resyt = mysql_query($qt);
while($row = mysql_fetch_array($resyt)) {
$db_passwd = $row["passwd"];
};
if ($db_login != $username || $db_passwd != $pass || $db_login == "" || $db_passwd == ""){
echo "<center>
<table>
<tr bgcolor=\"#CCCCCC\">
<td><b>Вход в админ панель</b></td>
</tr>
<tr bgcolor=\"#CCCCCC\">
<td><b>$login_screen</b></td>
</tr>
</table>
</center>";
echo("<script>alert('Неверный логин, пожалуйста проверьте логин и пароль');</script>");
session_destroy();
mysql_close;
exit;
}
};
?>
Над этим примером можно делать все что угодно.
Ну самое лучшее для большей безопасности рекомендую перевести все пароли в MD5.




Вопрос был задан на этой странице. Но если Вам это не интересно, могу предложить Вам почитать про как выбрать качественный хостинг PHP+MySQL

 
  (c) Janda.ru