За последние 24 часа нас посетили 15558 программистов и 1549 роботов. Сейчас ищут 870 программистов ...

простейшая авторизация... но не работает :(

Тема в разделе "Прочее", создана пользователем EvelRus, 2 дек 2008.

  1. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?php
    2. $act = trim(htmlspecialchars($_GET['act']));
    3. if (($act == 'admin') && (isset($_POST['login'])))
    4. {
    5.  if ($POST['admin_user'] != 'admin' || $POST['admin_passwd'] != 'admin')
    6.  {
    7.     if (file_exists('log.log'))
    8.     {
    9.       $output = "\n";
    10.     }
    11.     $comment = fopen ('log.log','a');
    12.     $output .= 'Взлом с адреса: '.$_SERVER['REMOTE_ADDR'];
    13.     @fputs($comment, $output) or $error = 'nofile';
    14.     fclose($comment);
    15.     if ($error == 'nofile')
    16.     {
    17.         echo '<p align="center">Попытка взлома с адреса: <b>'.$_SERVER['REMOTE_ADDR'].'</b><br>Информация несохранена, но Администратор получил уведомление';
    18.         die();
    19.     }
    20.         echo '<p align="center">Попытка взлома с адреса: <b>'.$_SERVER['REMOTE_ADDR'].'</b><br>Информация <u>сохранена</u> для Администратора';
    21.  }
    22.  else
    23.  {
    24.     echo 'Вы вошли';
    25.  }
    26. }
    27. else
    28. {
    29.       echo '<form method="POST" action="?act=admin" name="enter_admin">
    30.     <table border="0" width="100%" id="table1">
    31.         <tr>
    32.             <td align="right" width="50%">Логин </td>
    33.             <td align="left" width="50%">&nbsp;<input type="text" name="admin_user" size="20"></td>
    34.         </tr>
    35.         <tr>
    36.             <td align="right" width="50%">Пароль&nbsp;</td>
    37.             <td align="left" width="50%">&nbsp;<input type="password" name="admin_passwd" size="20"></td>
    38.         </tr>
    39.         <tr>
    40.             <td colspan="2">
    41.             <p align="center"><input type="submit" value="Войти" name="login"><input type="reset" value="Очистить" name="reset"></td>
    42.         </tr>
    43.     </table>
    44. </form>';
    45. }
    46. ?>
    Где я не прав? какой логин/пароль не введи, всегда ошибка :( Даже если верные :(((
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    ==

    поищи, я где-то в готовых решениях уже выкладывал авторизацию,регистрацию на файлах и БД
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Ну так верно, если НЕ равно... Там же обратное условие есть :)
     
  4. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    не $POST а $_POST, условие верное... но я бы по-другому сделал :)
     
  5. helso

    helso Активный пользователь

    С нами с:
    2 дек 2008
    Сообщения:
    2
    Симпатии:
    0
    как

    а как бы сделал ?
     
  6. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Вопрос задан не мне, но отпишусь-ка и я.
    Советую сравнивать не пароли а их хеши (md5, SHA1, etc). И, ессно в базе их же и хранить. Мне нравится метод, примененный в vBulletin, им и пользуюсь

    база, таблица пользователей
    ид|логин|мыло|соль (*)|пароль (**)

    * 3 случайных ASCII символа
    ** md5(md5(настоящий пароль) . соль)

    При логИне проверяем по формуле (**) значение пароля со значением в базе, отправляем пирожок: md5(пароль в базе. COOKIE_SALT), где COOKIE_SALT - произвольная строка. В vBulletin она как-то связана с лицензией.

    Ну и потом, когда нужно, проверяем пирожок с базой, по формуле.
     
  7. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Мне не надо в базе :))))
    Да и нужна защита от ламера :))) В общем решил сделать .htaccess )))
     
  8. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    ))) тогда тем более думаю не нужно соли:)

    А писать - долго.