PHP: <?php $act = trim(htmlspecialchars($_GET['act'])); if (($act == 'admin') && (isset($_POST['login']))) { if ($POST['admin_user'] != 'admin' || $POST['admin_passwd'] != 'admin') { if (file_exists('log.log')) { $output = "\n"; } $comment = fopen ('log.log','a'); $output .= 'Взлом с адреса: '.$_SERVER['REMOTE_ADDR']; @fputs($comment, $output) or $error = 'nofile'; fclose($comment); if ($error == 'nofile') { echo '<p align="center">Попытка взлома с адреса: <b>'.$_SERVER['REMOTE_ADDR'].'</b><br>Информация несохранена, но Администратор получил уведомление'; die(); } echo '<p align="center">Попытка взлома с адреса: <b>'.$_SERVER['REMOTE_ADDR'].'</b><br>Информация <u>сохранена</u> для Администратора'; } else { echo 'Вы вошли'; } } else { echo '<form method="POST" action="?act=admin" name="enter_admin"> <table border="0" width="100%" id="table1"> <tr> <td align="right" width="50%">Логин </td> <td align="left" width="50%"> <input type="text" name="admin_user" size="20"></td> </tr> <tr> <td align="right" width="50%">Пароль </td> <td align="left" width="50%"> <input type="password" name="admin_passwd" size="20"></td> </tr> <tr> <td colspan="2"> <p align="center"><input type="submit" value="Войти" name="login"><input type="reset" value="Очистить" name="reset"></td> </tr> </table> </form>'; } ?> Где я не прав? какой логин/пароль не введи, всегда ошибка Даже если верные ((
Вопрос задан не мне, но отпишусь-ка и я. Советую сравнивать не пароли а их хеши (md5, SHA1, etc). И, ессно в базе их же и хранить. Мне нравится метод, примененный в vBulletin, им и пользуюсь база, таблица пользователей ид|логин|мыло|соль (*)|пароль (**) * 3 случайных ASCII символа ** md5(md5(настоящий пароль) . соль) При логИне проверяем по формуле (**) значение пароля со значением в базе, отправляем пирожок: md5(пароль в базе. COOKIE_SALT), где COOKIE_SALT - произвольная строка. В vBulletin она как-то связана с лицензией. Ну и потом, когда нужно, проверяем пирожок с базой, по формуле.