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

    +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
    ##############################################
    # Bitrix: SiteManager                        #
    # Copyright (c) 2002-2006 Bitrix             #
    # http://www.bitrixsoft.com                  #
    # mailto:[email protected]                #
    ##############################################
    
    if (!class_exists("CCaptcha"))
    {
    	class CCaptcha
    	{
    		var $imageWidth = 180;
    		var $imageHeight = 40;
    // ...etc

    Это Битрикс. Опять. bitrix\modules\main\classes\general\capt cha.php
    Определение нативной капчи.
    В строке 8 создатели сего как бы задаются воспросом «А вдруг еще никто не писал до нас капчи?».
    Или перестраховываются — «а вдруг require() уже вызывался? И что такое require_once(), про который все так много говорят?»
    Добротный, защищенный на все сто, класс капчи. Невозможно сломать, уже просто потому, что невозможно понять...

    Запостил: velosipedistorg, 01 Февраля 2012

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

    • всегда не любил битрикс
      Ответить
    • предположу, что есть ещё ACaptcha и BCaptcha
      Ответить
    • require_once() хранит хеш файла и при каждом подключении сравнивает хеши, уж лучше class_exists
      Ответить
      • Окей, require_once сам предпочитаю избегать. Но как можно оставлять подключение библиотек в таком сыром состоянии?
        Опять же, "каждое" подключение, это сколько? Я на практике не выводил на странице более двух капч (каждый рендеринг - вообще только 1 экземпляр). Даже если бы и двадцать - расходы спичечные.
        Поэтому уж лучше не class_exists(), а грамотно проектировать архитектуру приложения.
        Ответить
    • C-c-captcha breaker!
      Ответить
    • в чем проблема, кэп? сурово канеш, но пишешь для говна - перестрахуйся - вдруг через жопу второй раз пропустить попробуют.
      Ответить
    • if (class_exists("CCaptcha"))
      return;

      class CCaptcha
      ...
      Ответить
    • показать все, что скрытоvanished
      Ответить

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