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

    +157

    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
    public static function createShareUser($email) {
            $password = substr(md5(time()), 0, 8);
            $query =  "insert into users (username, email, realname, password) values ('".$email."','".$email."','".$email."','".md5($password)."')";
            $c = 0;
            while (!mysql_query($query) && $c < 100) {
    			LLogger::logError("[createUser] - MySql error (".$c."): [".implode(' *** ', DB::error_info()));
    			return false;
                $query = preg_replace('%_%' . ($c - 1), '_' . ($c), $query);
                $c++;
            }
        
            if ($c == 100) {
                LLogger::logError("[createUser] - More than 10 unnamed users exists.");
                return false;
            }
    
            $userId = LQuery::getLastInsertId();
            LUserRights::setUserRights($userId);
            return $userId;
        }

    //если у нас строка exists в БД, это что бы наверняка, а вдруг на 101 раз у нас ее не будет :)
    // ну или наконец, оно "волшебным" образом ее туда всетаки впихнет
    //мускул обидится на автора и сдастся, подумает, да ну тебя ты дебил хочешь так на!
    // автор просто Пикассо, что не фун-я то шедевр.

    Запостил: vv3d0x, 02 Сентября 2013

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

    • > md5(time())
      Секьюрно. Кому нужно больше 86400 вариантов в сутки?
      Ответить
      • Ага, причем если бы это был форум, можно было бы посмотреть на стаж юзера, и...

        > %_%
        Регулярка тоже в шоке от этого кода.

        > $c == 100
        > More than 10 unnamed users exists
        No comments.

        > unnamed users
        Регистрация анонимусов?
        Ответить
    • > а вдруг на 101 раз у нас ее не будет
      Тут, походу, изначально юзеров называли не по мылу, как мы видим в коде, а как-то в духе user_1, user_2 и так далее, отсюда и растут ноги у цикла с заменой...

      Вот только второй процентик автор не туда привернул, надо было клеить после ($c - 1), да и инкремент он не туда засунул, и первая замена будет -1 на 0.

      Ну и сама идея с циклом ебанутая, проще тупо давать имя юзеру по его айдишке в таблице: id = 356 => username = 'user_356' (и, для простоты, запретить другим юзерам регать подобные имена).
      Ответить
    • implode(' *** ', DB::error_info())

      Пора заводить сайт govnodelimeter.ru
      Ответить
    • Мне одному кажется, что это похоже на забитие БД тестовыми данными?
      Ответить
    • пля $c++; =)))
      Ответить

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