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

    +11

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $result = $this -> db -> query( "SELECT `Login` FROM `Users`" );
    while( $array = mysql_fetch_array( $result ) )
    {
    	if( $array['Login'] == $login )
    	{
    		$this -> errors .= "<li>Этот ник уже используется !</li>\n";
    		$_POST['login'] = htmlspecialchars( $login );
    		break;
    	}
    }

    Запостил: SOAD, 23 Октября 2015

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

    • Нет пользовательского ввода в запросе - нет инъекций! Гениально!
      Ответить
    • NoSQL. Стильно, модно, молодёжно. Получаем из СУБД сырой массив данных и обрабатываем в своём коде.

      К сожалению, говнохостинги не предоставляют вменяемых NoSQL-хранилищ, поэтому временно используется MySQL.
      Ответить
      • А в чем прикол?
        Ответить
        • В данном коде или в настоящем NoSQL?
          Ответить
          • В nosql.
            Ответить
            • В масштабируемости.
              Ответить
              • А я-то думал, что NoSQL для тех, кто SQL не осилил...

                А если серьёзно, то как NoSQL помогает масштабируемости?
                Ответить
                • В основном, вроде как, отбрасыванием нинужных буковок из ACID :)

                  У РСУБД слишком много гарантий и возможностей, чтобы её можно было нормально расшардить...
                  Ответить
                • классическое - меньше болтов - больше гибкость. Из nosql субд низкого уровня можно самому слепить все что захочется. Но большенству эта имбота даром не нужна - реляционно-изкоробочное решение рулит.
                  Ответить
                  • > nosql субд низкого уровня
                    Самый прикол в том, что это самое nosql низкого уровня (key-value с acid) есть в каждой РСУБД. А поверх него уже нахуеверчены таблицы, запросы и их оптимизации ;)
                    Ответить
                    • что вполне разумно и логично. Только большая часть не дает совать пальцы в шестеренки и обрабатывать напильником
                      Ответить
              • То есть на одной машине это нинужно?
                Ответить
      • А мускуль же вроде как-то мог работать как key-value? Или из пыхи на говнохостингах этот интерфейс недоступен?
        Ответить
        • Действительно:
          https://mariadb.com/kb/en/mariadb/handler/
          https://mariadb.com/kb/en/mariadb/handlersocket/

          Команда HANDLER для тупого чтения была даже в MySQL 5.0:
          http://dev.mysql.com/doc/refman/5.0/en/handler.html

          А плагин HandlerSocket что-то не гуглится. Похоже, что из коробки этого плагина в MySQL нет.

          Но в любом случае команда HANDLER есть из коробки как минимум с версии 5.0, причём она поддерживает WHERE и даже LIMIT. Только сортировки/группировки нет, вот их и придётся делать на клиенте.
          Ответить
          • >из коробки этого плагина в MySQL нет.
            This. То же касается и расширения для шаблонизатора, потому на питушиных хостингах не будет никогда. Да и не нужно оно там на самом деле.
            >Только сортировки/группировки нет
            А разве в труЪ битоёбском протоколе она была?
            Ответить
            • > А разве в труЪ битоёбском протоколе она была?

              И не должно быть. Просто мне понравилось, что HANDLER — это уже почти SELECT. Я вообще ожидал от него меньшего.

              > расширения для шаблонизатора

              Поясните свою мысль.
              Ответить
              • >Поясните свою мысль.
                https://github.com/kjdev/php-ext-handlersocketi
                Ответить
      • для фанатов напильника и работы руками - насыкуль.
        насыкуль свою бд
        Ответить
    • $this -> errors .= "<li>Этот ник уже используется в выражениях:
          ``что за мудак этот %ник%?!''
          ``%ник% -- шалава!''
          ``руки бы етому %ник%у оторвать!''</li>\n";
      Ответить
      • Я как-то лазил в исходниках регистрилки аккаунтов нашего института, к которой админы любезно дали всем доступ для чтения. Там, помимо матюгов, в бане был hitler
        Ответить

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