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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $content="{$_POST["From"]} - {$_POST["To"]}: {$_POST["DepartureDate"]},{$_POST["ArrivalDate"]}; {$_POST["date_type"]}";
    			
    $content=str_replace("'","",$content);
    
    if(!mysql_num_rows(mysql_query("select id from table where sess_id='$sess_id' AND aff_id='$aff_id' AND operation_id='$operation_id' AND `content`='$content'"))>0){
    }

    Запостил: berejant, 08 Мая 2013

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

    • > "{$_POST["From"]}
      Э-э, не сконпелируется же.
      Ответить
      • Сначала плюсанул, а потом... http://ideone.com/YMN6WS

        Это ПХП...
        Ответить
        • Да, век живи - век учись.
          Вот уж на что уродский язык, а всё выкидывает и выкидывает фортеля.
          Ответить
          • А чему тут учиться-то? Это очередная фича пыха, которую не стоит применять ни при каких обстоятельствах. Я не знаю как давно это принято, но вероятнее всего об этом не догатываются многие редакторы и IDE с подсветкой синтаксиса. В итоге имеем лишнюю возможность для нубов писать неподдерживаемое говно и сломанные синтаксические анализаторы. Разве нет?
            Ответить
            • Вот для меня, например, было слегка неожиданно, когда иногда поведение совершенно непредсказуемое. Например, не так давно мы тут выяснили, что php-файл может заканчиваться практически чем угодно, а не обязательно ?>, как пишут в учебниках.
              Ответить
              • Издержки производства. Автор пыхи признавался в том, что он не умеет писать парсеры.
                Ответить
                • Ну, положим, отсутствие ?> может быть полезным в определённых случаях. Учитывая, что это конец файла, казусов с логическим пониманием этого факта особых возникнуть не должно, так что на поддержку это не влияет. Зато можно генерированный код аппендить в конец уже существующего файла, не боясь, что наткнешься на ?> и в итоге получишь тонну ерроров, если принять такую конвенцию для проекта. (Например copmoser так делает)
                  Но здесь же со вложенными двойными кавычками пример противоположный. Ведь ЕМНИП, этого раньше не было. А значит - добавлена поддержка для того, чем пользоваться не стоит. Вот так нововведение, как раз в стиле пыха.
                  Ответить
                  • Здесь не просто вложенные двойные кавычки. Здесь хитро: без фигурных скобок не скомпилируется. Т. е. внутри фигурных скобок, которые внутри двойных кавычек, интерпретатор ожидает квалифицированное описание переменной, элемента массива или свойства объекта. Поэтому кавычка перед From и не закрывает строку.

                    Фигурные скобки можно даже вкладывать, но слишком произвольные выражения использовать нельзя. Боюсь наврать, но похоже, что php внутри фигурных скобок ожидает LVALUE.
                    Ответить
                • Мне больше понравилась история с ?-s и иже с ними, когда упоротый автор сломал КХЕРАМ неудачникам всю безопасность.
                  Ответить

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