1. PHP / Говнокод #6029

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    <? 
    // Страница авторизации 
      
    # Функция для генерации случайной строки 
    function generateCode($length=6) { 
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789"; 
        $code = ""; 
        $clen = strlen($chars) - 1;   
        while (strlen($code) < $length) { 
                $code .= $chars[mt_rand(0,$clen)];   
        } 
        return $code; 
    } 
    
    # Соединямся с БД 
    mysql_connect("localhost", "loper", "l1i2z3a4"); 
    mysql_select_db("lingerie"); 
     
    if(isset($_POST['submit'])) 
    { 
        # Вытаскиваем из БД запись, у которой логин равняеться введенному 
        $query = mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"); 
        $data = mysql_fetch_assoc($query); 
         
        # Соавниваем пароли 
        if($data['user_password'] === md5(md5($_POST['password']))) 
        { 
            # Генерируем случайное число и шифруем его 
            $hash = md5(generateCode(10)); 
                 
            if(!@$_POST['not_attach_ip']) 
            { 
                # Если пользователя выбрал привязку к IP 
                # Переводим IP в строку 
                $insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')"; 
            } 
             
            # Записываем в БД новый хеш авторизации и IP 
            mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'"); 
             
            # Ставим куки 
            setcookie("id", $data['user_id'], time()+60*60*24*30); 
            setcookie("hash", $hash, time()+60*60*24*30); 
             
            # Переадресовываем браузер на страницу проверки нашего скрипта 
            header("Location: check.php"); exit(); 
        } 
        else 
        { 
            print "Вы ввели неправильный логин/пароль"; 
        } 
    }

    Запостил: qbasic, 19 Марта 2011

    Комментарии (7) RSS

    • | равняеться
      | Соавниваем
      | Если пользователя выбрал привязку
      Чукча не читатель...
      Ответить
    • Отличное учебное пособие! В каждой второй сроке приме того, как НЕ надо писать на PHP. В остальных строках - как НЕ надо писать на русском...
      Ответить
    • Не самый хуевый код, умники, покажете как надо?
      Ответить
    • а у меня появилось несколько вопросов:
      какая буква потерялась между I и J?

      >mysql_select_db("lingerie");
      база данных нижнего белья?
      Ответить
    • SQL-инъекция при register_globals = on
      Ответить

    Добавить комментарий