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

    +1

    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
    <?
    
    if(!$_POST){//mpre("Не аякс запрос");
    }elseif(!$name = mpquot(get($_POST, 'name'))){mpre("Регистрационное имя не указано");
    }elseif(!$pass = get($_POST, 'pass')){mpre("Пароль для регистрации не указан");
    }elseif(get($_POST, 'pass') != get($_POST, 'pass2')){mpre("Пароли не совпадают");
    }elseif($users = rb("{$conf['db']['prefix']}users","name","[{$name}]")){mpre("Пользователь уже зарегистрирован");
    }elseif(!$sess = get($conf, 'user', 'sess')){mpre("Ошибка полученя сессии текущего пользователя");
    }elseif(!$mphash = mphash($name, $pass)){mpre("Ошибка генерации пароля");
    }elseif(!$users = fk("{$conf['db']['prefix']}users", $w = array("name"=>$name), $w += array("type_id"=>1, "pass"=>$mphash, "reg_time"=>time(), "last_time"=>time(), "email"=>get($_POST, 'email'), "ref"=>get($conf, 'user', 'sess', 'ref'), "refer"=>get($conf, 'user', 'sess', 'refer')))){mpre("Ошибка регистрации пользователя");
    }elseif(!$grp = get($conf, 'settings', 'user_grp')){mpre("Ошибка определения пользовательской группы");
    }elseif(!$users_grp = rb("users-grp", "name",$w = "[{$grp}]")){mpre("Ошибка выборки группы {$w}");
    }elseif(!$users_mem = fk("users-mem", $w = ["uid"=>$users['id'], "grp_id"=>$users_grp['id']], $w)){mpre("Ошибка добавления пользователя `{$users["name"]}` в группу '{$users_grp["name"]}'");
    }elseif(!$sess = fk("{$conf['db']['prefix']}sess", ["id"=>$sess["id"]], null, ['uid'=>$users["id"]])){mpre("Ошибка обновления сессии пользователя");
    }else{ mpevent("Регистрация нового пользователя", $name, $users['id'], $_POST);
    	 exit(json_encode($users));
    }

    Страница регистрации

    Запостил: 12febraury, 23 Августа 2017

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

    • https://github.com/mpak2/mpak.su/blob/master/modules/users/reg.php
      Ответить
    • мрак, су
      Ответить
    • А вообще, конечно, постили уже много раз
      http://govnokod.ru/search?search=mpak.su&language=php
      Ответить
      • Вообще mpak необходимо запретить на законодательном уровне.
        Ответить
        • https://habrahabr.ru/post/283166/
          Ответить
          • У него еще есть туториал, как пользоваться замечательной инновационной функцией rb().
            https://habrahabr.ru/post/279029/
            Ответить
            • Уникальные автоинкрементные поля гарантируют нам конфликты имен записей данных.
              Ответить
              • - У вас конфликты имён записей данных на стройке были?
                Ответить
              • А если конфликт имён записей вдруг не возникнет, можно будет обратиться в гарантийную мастерскую?
                Ответить
    • О, ЖИРаф ЦМС, классика говнокода. А ведь это чудо до сих пор развивается, при чём автор был до конца предан своему стилю, не отрефакторив ни строчки за 5 (пять!) лет.

      Немного безысходности:
      if(strpos($error, "doesn't exist")){
      	qw(pre("ALTER TABLE {$conf['db']['prefix']}modules RENAME {$conf['db']['prefix']}modules_index"));
      }else{ pre("Ошибка обработки ошибки", $error); }
      Ответить
      • > Ошибка обработки ошибки обработки ошибки
        We need to go deeper.
        Ответить
        • https://ideone.com/vK93mV
          Ответить
          • Exception driven branching. Может применяться для создания циклов, для вычислений по рекуррентным формулам и т. п.
            Ответить
        • Вообще, бывают многократные (бесконечные) повторы фейлящихся операций. Можно считать обработкой ошибки обработки ошибки и т.д.
          Ответить
    • Логин или пароль не совпадают
      Ответить
    • - Это она боится, что кто-то её с её подружкой застукает, - проснулся остроумный Никита.
      Ответить

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