Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Папуасы из говна и палочек собрали взлетно-посадочную полосу и стали ждать что туда прилетит транспортник и привезет тушенку (у белых людей же получилось).
А кто сказал, что здесь его юзают как конкатенацию? 🙂 Ну выведет оно 0 вместо 'Запрос не удался: кривой параметр', подумаешь... Как-будто кто-то будет это читать.
Слабая динамическая питушня такая слабая и динамическая...
Плюс слабой динамичной в том, что не нужно компилить.
Ну и то , что в случае чего, хоть как-то, но сервис продожит работать.
Где-то это нужно, где-то нет.
1. Пройди ликбез по ссылке выше.
2. Не приписывай мне то, чего я не говорил.
3. У меня вообще сомнения в твоей адекватности судя по твоим комментам и говнокоду.
Компиляция/интерпретируемость, слабость и динамичность вообще никак не связаны. Это «ортогональные координаты».
В компилируемом Delphi с сильной статической типизацией есть динамический тип Variant, который может вмещать произвольные (до определённой степени) значения. Похожий контейнер есть в библиотеках C++ (boost::any, boost::variant, QVariant).
В интерпретируемых языках бывают хинты типов, ограничивающие динамику.
В Питоне, хотя он и интерпретируемый, типизация сильнее, чем в PHP.
В Си, хотя он и компилируемый, типизация слабее, чем в Паскале.
Существует компилируемый Бейсик и интерпретируемый Паскаль, так что, видимо, компилируемость/интерпретируемость — это свойства скорее реализации, чем языка.
Да и вообще, все (ну или почти все) языки имеют интерпретаторы, которые используются для дебага. Без такового точку остановки не поставишь, состояние не посмотришь, белым ящиком не потестишь
Чойта? Сишка и без интерпретатора нормально дебажится. Просто компилер генерит маппинг между номерами строк, именами переменных и соответствующими им адресами.
Ещё у 8086 был режим трассировки, когда после исполнения каждой инструкции вызывается прерывание. Этой особенностью и пользовалась среда Турбо Си и Турбо Паскаля, позволяя ставить точку остановки в экзешнике. А поскольку одновременно с экзешником генерировался map-файл (о чём упомянул Борманд), среда могла показать, какой строчке исходника соответствует текущая инструкция процессора.
Ещё у 8086 была однобайтовая инструкция для вызова прерывания № 3, которую можно было аккуратно вставить в любое место кода, чтобы полностью не переходить в режим трассировки.
Так что не было интерпретатора у Турбо Си и у Турбо Паскаля, а отладка была.
1. Да, PHP компилится. Но все выглядит так, как будто ничего не компилится. Программисту не нужно компилировать весь проект.
2. Я неправильно сказал, что код со слабой динамической типизицией не предполагает компиляцию.
Я имел в виду то, что PHP-код не нужно программисту компилить.
3. Мы можем знать, какой тип хранится в Variant?
1. Действительно, весь проект может и не компилироваться, поскольку у include/require действие динамическое. Но каждый файл компилируется целиком. Это BAT-файл может выполняться до первой ошибки без предварительного разбора.
Упадёт на второй, но не из-за того, что не смог интерпретировать вторую строчку, а из-за того, что объект не инициализирован. Да, он скомпилирован целиком, только $fooooo == null, поэтому нельзя вызвать метод.
А такой код сразу упадёт и не выведет ничего, потому что не скомпилируется:
Zend Guard is the leading solution that encodes/decodes and encrypts/decrypts PHP code, protecting applications from unlicensed use & reverse engineering.
Zend Guard's powerful encoding and obfuscation technologies prevent reverse engineering, copyright infringement and unauthorized modification of your code.
Encoding is a process where the PHP source code is converted to an intermediate machine readable format, just like PHP encryption. This format is hard for humans to read and convert back to source code. As a result it protects your code from casual browsing. This means that if people obtain access to your site's code they will not be able to use that for unintended purposes.
Obfuscation is a process where the code is intentionally made very hard to read as source code or as reverse engineered code.
PHP Encoder... compiles and converts the plain-text PHP scripts into a platform-independent binary format known as a 'Zend Intermediate Code' file.
Если я правильно понял, что тут написано, то Zend Guard комбинирует компиляцию с шифрованием.
Папуасы из говна и палочек собрали взлетно-посадочную полосу и стали ждать что туда прилетит транспортник и привезет тушенку (у белых людей же получилось).
Точно так же ПХПшники используют ООП.
Запрос не удался, короче
Фу, блядь, фу, нахуй!
ololo@mail.ru);delete from users where (1=1
Нужно в коде заменить mysql_query на mysqli_multi_query, чтобы сработало.
http://php.net/manual/ru/mysqli.multi-query.php
тогда nickname нужен
admin, 123, ololo@mail.ru) on duplicate key update (password='123'
пароль то не хешируется
В PHP можно использовать + как конкатенацию строки? Давно ли это?
Слабая динамическая питушня такая слабая и динамическая...
Ну и то , что в случае чего, хоть как-то, но сервис продожит работать.
Где-то это нужно, где-то нет.
Казалось бы, при чем здесь типизация.
> в случае чего, хоть как-то, но сервис продожит работать
Ололо. Да и типизация тут тоже похуй.
https://habrahabr.ru/post/161205/
лол, какая же каша у тебя в голове)
Ты путаешь слабую типизацию с динамической, и зачем-то приплел компиляцию сюда>
2. Не приписывай мне то, чего я не говорил.
3. У меня вообще сомнения в твоей адекватности судя по твоим комментам и говнокоду.
Сорри, что влез в дисскуссию с дураком.
В компилируемом Delphi с сильной статической типизацией есть динамический тип Variant, который может вмещать произвольные (до определённой степени) значения. Похожий контейнер есть в библиотеках C++ (boost::any, boost::variant, QVariant).
В интерпретируемых языках бывают хинты типов, ограничивающие динамику.
В Питоне, хотя он и интерпретируемый, типизация сильнее, чем в PHP.
В Си, хотя он и компилируемый, типизация слабее, чем в Паскале.
И, таки, это черный ящик
Ещё у 8086 была однобайтовая инструкция для вызова прерывания № 3, которую можно было аккуратно вставить в любое место кода, чтобы полностью не переходить в режим трассировки.
Так что не было интерпретатора у Турбо Си и у Турбо Паскаля, а отладка была.
Почему был? Он и сейчас есть. Ну и добавились дебаг регистры, в которых можно задать 4 адреса, на которых прога будет прерываться.
0xCC
2. Я неправильно сказал, что код со слабой динамической типизицией не предполагает компиляцию.
Я имел в виду то, что PHP-код не нужно программисту компилить.
3. Мы можем знать, какой тип хранится в Variant?
3. Можем. Variant — это по сути запись (структура) из нескольких полей, в первом из которых указан тип текущего значения. Для удобства есть функция VarType, возвращающая этот тип:
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Variant_Types
> Я имел в виду то, что PHP-код не нужно программисту компилить.
А вот тут хотелось бы узнать поподробнее, что под этим подразумевалось. Что программисту не нужно вызывать отдельную команду для компиляции?
echo 1;
$fooooo->fff();
А такой код сразу упадёт и не выведет ничего, потому что не скомпилируется:
Приложения распространяются в исходниках, а не скомпилированные.
Fend Dezender
http://govnokod.ru/user/14363/codes
bagor
BagorCtretora
gayator
Xyecoc
CTEPTOP
alisher226
CrashTesterAnusov
Guest_
DarkCat
negr
voodoodal16
Kamerynez
pdro(.*)
Какая компиляция?..
Encoding is a process where the PHP source code is converted to an intermediate machine readable format, just like PHP encryption. This format is hard for humans to read and convert back to source code. As a result it protects your code from casual browsing. This means that if people obtain access to your site's code they will not be able to use that for unintended purposes.
Obfuscation is a process where the code is intentionally made very hard to read as source code or as reverse engineered code.
PHP Encoder... compiles and converts the plain-text PHP scripts into a platform-independent binary format known as a 'Zend Intermediate Code' file.
Если я правильно понял, что тут написано, то Zend Guard комбинирует компиляцию с шифрованием.
А компиляция у них вот такая:
http://php.net/manual/ru/internals2.opcodes.php