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

    +179

    1. 1
    eval(file_get_contents("../myClass.php"));

    Интересно, он подозревает о существовании функции include ?

    Запостил: DropWorld, 29 Ноября 2010

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

    • Блин, промахнулся. Это PHP !
      Подредактируйте это пожалуйста...
      Ответить
    • Круто :)
      function myInclude ( $fileName ) {
      	if ( file_exists( $fileName ) ) {
      		eval ( file_get_contents( $fileName ) );
      	} else {
      		// бережно храня традиции php...
      		echo '
      			<br />
      			<b>Warning</b>:  include(\'' . $fileName . '\') [<a href=\'function.include\'>function.include</a>]: failed to open stream: No such file or directory in <b>' . __FILE__ . '</b> 
      			on line <b>' . __LINE__ . '</b>
      			<br />
      			<br />
      			<b>Warning</b>:  include() [<a href=\'function.include\'>function.include</a>]: Failed opening \'' . $fileName . '\' for inclusion (include_path=\'' . PEAR_INSTALL_DIR . '\') in <b>' . __FILE__ . '</b> 
      			on line <b>' . __LINE__ . '</b>
      			<br />
      			';
      	}
      }
      Ответить
      • Молодец, красавчик.
        Ответить
      • Только один косяк: нужно
        eval('?>'.file_get_contents($fileName).'<?php');

        Интересно, начнёт ли эта конструкция вывод в браузер, т.е. можно ли будет посылать хедеры после неё?
        Ответить
        • внутри файла $fileName может небыть закрывающего тэга ?>, он не есть обязательным, так что предлагаю подкинуть говнеца и проверить это регекспами:)
          Ответить
      • О да, HTML в echo это классика жанра:)
        Предлагаю сжигать на костре каждого позарившегося на эту возможность пыха.
        Ответить
    • ВНЕЗАПНО, include - не функция
      Ответить
      • показать все, что скрытода
        это конструкция говноязыка
        Ответить
        • Я 1 думаю что какой то дибил кричит что Include конструкция языка?
          http://php.net/manual/en/function.include.php
          Ответить
          • а Вы английский-то знаете?
            или что б денвер запустить -- не надо?
            Ответить
          • ОМГ, еще один
            http://govnokod.ru/4787#comment54990
            луркани-ка комментца :-Р
            Ответить
      • показать все, что скрыто#include <iostream> - конструкция языка
        include('script.php'); - функция
        Ответить
        • а в мануал заглянуть?
          Ответить
        • вообще-то можно без скобок обойтись тут. Так, возможно, Вам яснее станет, почему не функция.
          Ответить
        • первое это вообще директива препроцессора))))))))
          Ответить
        • >#include <iostream> - конструкция языка

          ВНЕЗАПНО. Это НЕ КОНСТРУКЦИЯ ЯЗЫКА. Это вообще директива препроцессора, которая к С/С++ имеет опосредованое значение.
          Ответить
          • тащемто да.
            cpp ведь можно натравить не только на с, но и на файл на хаскеле, например)
            Ответить
            • Господа гусары, ни слова о том, чтобы натравить cpp на PHP!
              Ответить
              • хаха, правильно я не стал заострять на #include, сишники пришли сами и порвали как грелку %)
                Ответить
      • показать все, что скрытоРазработчики PHP об этом не подозревали:
        http://php.net/manual/en/function.include.php
        Ответить
        • судя по URL поддерживается .NET и протокол HTTP, ага.
          ты ниже читай :-Р

          PS: о чём думают разработчики PHP и думают ли вообще - науке неизвестно.
          Ответить
        • (плача от смеха) The include() statement
          Ответить
          • и что такого?
            Ответить
            • это как бэ намекает что это конструкция языка (как кейс) а не функция (как мускуль коннект)
              Ответить
              • ну и что в этом плохого? echo и print тоже конструкции: за то без скобок можно писать, и это оправдано, так как они часто употребляются.

                Вот такой вот синтаксический цукорочек от создателей PHP
                Ответить
          • можно писать include arg или include (arg). все равно языковая конструкция. Как например isset. Ой, да, и конечно же include имеет возвращаемое значение
            Ответить
    • Млять... можно же "от противного отскакивать"! Если include - это функция, что же там в стеке-то интересно???
      Ответить
    • http://www.google.com.ua/search?sourceid=chrome&ie=UTF-8&q=include+%D0%BA%D0%BE%D0%BD%D1%81%D1% 82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F+% D0%B8%D0%BB%D0%B8+%D1%84%D1%83%D0%BD%D0% BA%D1%86%D0%B8%D1%8F

      4 ссылка не в счет!! решать сам бог будет?
      Ответить
      • a word of advice: если очищать урл от поебени, которую гооглевское спываре туда сует, чтобы посчитать клики от партнеров, то шанс, что говнокодский скрипт его не испоганит будет гораздо выше
        Ответить
      • Не нравится мне sourceid=chrome, я бы написал sourceid=opera.
        Ответить
        • опера туда пишет нечто подобное, но другое, не менее анноящее, но в отличии от остальных можно убрать прямо из UI
          Ответить
          • Сама по себе Опера ничего не пишет, но в стандартных закладках панели поиска и экспресс-панели есть client=opera&sourceid=opera, которые можно стереть раз и навсегда, чтобы не палиться.
            Ответить
            • да-да, оно самое, которое идет в настройке по умолчанию.
              в данном случае у оперы очередной лютый вин, т.к. в других UA надо как минимум копаться в конфигах, чтобы это вытереть.
              не то чтобы палиться, но это мулька сильно загрязняет урл
              Ответить

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