"PHP" / Говнокод #21338 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
class RegUser 
{
	public function __construct($userParams) 
	{
		$this->userName = $userParams['userName'];
		$this->userSurname = $userParams['userSurname'];
		$this->userNickname = $userParams['userNickname'];
		$this->userPassword = $userParams['userPassword'];
		$this->userEmail = $userParams['userEmail'];	
	}
	
	public function regUser() 
	{
		$this->queryRegUserText = 'INSERT INTO users (name, surname, nickname, password, email)
		values('.$this->userName.', '.$this->userSurname.', '.$this->userNickname.', '.$this->userPassword.', '.$this->userEmail.')';
			
		$this->queryRegUser = mysql_query($this->queryRegUserText) or die('Запрос не удался: '+mysql_error());  
	}
}

Использование:
$regUser = new RegUser($_POST);
$regUser->regUser();

ООП ради ООП, ну и разное :)

Запостил: M-A-X M-A-X, (Updated )

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

  • Карго культ.

    Папуасы из говна и палочек собрали взлетно-посадочную полосу и стали ждать что туда прилетит транспортник и привезет тушенку (у белых людей же получилось).

    Точно так же ПХПшники используют ООП.

    Запрос не удался, короче
    Ответить
  • or die('Запрос не удался: '+mysql_error());

    В PHP можно использовать + как конкатенацию строки? Давно ли это?
    Ответить
    • А кто сказал, что здесь его юзают как конкатенацию? 🙂 Ну выведет оно 0 вместо 'Запрос не удался: кривой параметр', подумаешь... Как-будто кто-то будет это читать.

      Слабая динамическая питушня такая слабая и динамическая...
      Ответить
      • Плюс слабой динамичной в том, что не нужно компилить.
        Ну и то , что в случае чего, хоть как-то, но сервис продожит работать.
        Где-то это нужно, где-то нет.
        Ответить
        • > не нужно компилить
          Казалось бы, при чем здесь типизация.

          > в случае чего, хоть как-то, но сервис продожит работать
          Ололо. Да и типизация тут тоже похуй.
          Ответить
        • >>Плюс слабой динамичной в том, что не нужно компилить.

          лол, какая же каша у тебя в голове)
          Ты путаешь слабую типизацию с динамической, и зачем-то приплел компиляцию сюда>
          Ответить
          • 1. Пройди ликбез по ссылке выше.
            2. Не приписывай мне то, чего я не говорил.
            3. У меня вообще сомнения в твоей адекватности судя по твоим комментам и говнокоду.

            Сорри, что влез в дисскуссию с дураком.
            Ответить
            • Какой же ты тупой. Вместо того, чтобы пояснить за свой вброс, кидаешься нерелевантными ссылками и обзываешься.
              Ответить
            • зачем мне читать хабр?) Я прекрасно знаю что такое типизация,я же не пыхомартышка как ты.
              Ответить
        • Компиляция/интерпретируемость, слабость и динамичность вообще никак не связаны. Это «ортогональные координаты».

          В компилируемом Delphi с сильной статической типизацией есть динамический тип Variant, который может вмещать произвольные (до определённой степени) значения. Похожий контейнер есть в библиотеках C++ (boost::any, boost::variant, QVariant).

          В интерпретируемых языках бывают хинты типов, ограничивающие динамику.

          В Питоне, хотя он и интерпретируемый, типизация сильнее, чем в PHP.

          В Си, хотя он и компилируемый, типизация слабее, чем в Паскале.
          Ответить
            • Существует компилируемый Бейсик и интерпретируемый Паскаль, так что, видимо, компилируемость/интерпретируемость — это свойства скорее реализации, чем языка.
              Ответить
            • И чуть не забыл, что PHP, Perl и Python перед интерпретацией компилируются в байткод. Как с этим быть?
              Ответить
          • Да и вообще, все (ну или почти все) языки имеют интерпретаторы, которые используются для дебага. Без такового точку остановки не поставишь, состояние не посмотришь, белым ящиком не потестишь
            Ответить
            • Чойта? Сишка и без интерпретатора нормально дебажится. Просто компилер генерит маппинг между номерами строк, именами переменных и соответствующими им адресами.
              Ответить
              • И периодически выкидывает такие ошибки в dev/null, что ты охлебеваешь от недокументированных фич своего кода.

                И, таки, это черный ящик
                Ответить
                • Ну если дебаггером не уметь пользоваться, то да, чёрный ящик.
                  Ответить
            • Ещё у 8086 был режим трассировки, когда после исполнения каждой инструкции вызывается прерывание. Этой особенностью и пользовалась среда Турбо Си и Турбо Паскаля, позволяя ставить точку остановки в экзешнике. А поскольку одновременно с экзешником генерировался map-файл (о чём упомянул Борманд), среда могла показать, какой строчке исходника соответствует текущая инструкция процессора.

              Ещё у 8086 была однобайтовая инструкция для вызова прерывания № 3, которую можно было аккуратно вставить в любое место кода, чтобы полностью не переходить в режим трассировки.

              Так что не было интерпретатора у Турбо Си и у Турбо Паскаля, а отладка была.
              Ответить
              • > был
                Почему был? Он и сейчас есть. Ну и добавились дебаг регистры, в которых можно задать 4 адреса, на которых прога будет прерываться.
                Ответить
              • Да и сейчас все так дебажат. Кегдан чего-то напридумывал.
                Ответить
          • 1. Да, PHP компилится. Но все выглядит так, как будто ничего не компилится. Программисту не нужно компилировать весь проект.
            2. Я неправильно сказал, что код со слабой динамической типизицией не предполагает компиляцию.
            Я имел в виду то, что PHP-код не нужно программисту компилить.
            3. Мы можем знать, какой тип хранится в Variant?
            Ответить
            • 1. Действительно, весь проект может и не компилироваться, поскольку у include/require действие динамическое. Но каждый файл компилируется целиком. Это BAT-файл может выполняться до первой ошибки без предварительного разбора.

              3. Можем. Variant — это по сути запись (структура) из нескольких полей, в первом из которых указан тип текущего значения. Для удобства есть функция VarType, возвращающая этот тип:
              http://docwiki.embarcadero.com/RADStudio/Berlin/en/Variant_Types

              > Я имел в виду то, что PHP-код не нужно программисту компилить.

              А вот тут хотелось бы узнать поподробнее, что под этим подразумевалось. Что программисту не нужно вызывать отдельную команду для компиляции?
              Ответить
              • Орлы? На акой строке упадет и что выведет пхп

                echo 1;
                $fooooo->fff();
                Ответить
                • Упадёт на второй, но не из-за того, что не смог интерпретировать вторую строчку, а из-за того, что объект не инициализирован. Да, он скомпилирован целиком, только $fooooo == null, поэтому нельзя вызвать метод.

                  А такой код сразу упадёт и не выведет ничего, потому что не скомпилируется:
                  echo 1;
                  if
                  Ответить
              • Да, см. п. 1.
                Приложения распространяются в исходниках, а не скомпилированные.
                Ответить
                  • 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 комбинирует компиляцию с шифрованием.

                      А компиляция у них вот такая:
                      http://php.net/manual/ru/internals2.opcodes.php
                      Ответить
                • Дибил, блядь. Половина софта на сях распостраняется в исходниках
                  Ответить
          • Сегодня по-моему все языки умеют или в нативный код, или в байт-код. Даже рнр.
            Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8