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

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    <?php 
    
            define('URL', 'http://shop.megafonnw.ru/spb/?pageid=5&subpageid=5&rnd=18'); 
    
            $fp = fopen('URL', 'r'); 
    
            $fpt = fopen('script.txt', 'r+'); 
    
            $fpn = fopen('new.txt', 'r+'); 
    
            $cont = file_get_contents(URL); 
    
            $man = substr($cont, 14900, 7636); 
    
            $script = file_get_contents('script.txt'); 
    
            $new = file_get_contents('new.txt'); 
    
            if($script == "") { 
    
                fwrite($fpt, $man); 
    
                print "script zapisan!"; 
    
            }else { 
    
                if($script == $new) { 
    
                    $ret = fwrite($fpn, $man); 
    
                    print $ret."<br/>"; 
    
                    $sost = "No changed!"; 
    
                    ftruncate($fpn, 0); 
    
                }else { 
    
                    $ret = fwrite($fpn, $man); 
    
                    print $ret."<br/>"; 
    
                    $sost = "Text has been changed!"; 
    
                    ftruncate($fpt, 0); 
    
                    $ret2 = fwrite($fpt, $new); 
    
                    print $ret2."<br/>"; 
    
                    print strlen($new); 
    
                    ftruncate($fpn, 0); 
    
                } 
    
                print "script ne zapisan"; 
    
            } 
    
                print "\n\t<br/>".$sost; 
    
            fclose($fpn); 
    
            fclose($fpt); 
    
            fclose($fp); 
    
            ?>

    особо порадовала строка substr($cont, 14900, 7636);

    GoodTalkBot, 20 Мая 2010

    Комментарии (15)
  2. PHP / Говнокод #3276

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    public function __toString( $defaultText = '' )
    {
      return $this->getHtmlMaterial( $defaultText );
    }

    Продолжение серии "ОО П..."

    vatson, 20 Мая 2010

    Комментарии (4)
  3. PHP / Говнокод #3272

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    static public function checkFingerprint($fingerprint = null)
    {
        $user = ServiceFactory::getServiceUsers()->getByID((int)$_COOKIE['__MW__accountID']);
        $fingerprint = (isset($fingerprint)) ? $fingerprint : Users::getFingerprint();
        $flag = (bool)($fingerprint == $user->generateFingerprint());
        if ( $flag )
          return $user->userID;
        else
          return 0;
    }

    не только индусские разработчики бывают весёлыми - это творение взрослого афроамериканского собрата. Перестраховался везде где только мог. Особенно доставляет приведение к bool результата сравнения :)

    newmindcore, 19 Мая 2010

    Комментарии (15)
  4. PHP / Говнокод #3256

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    24. 24
    $metka=0;
    $reason = $form->getValue("reason");
    if ($activedate < $datenow)
    	{
    		$metka++;
    	}
    
    if (trim($reason) == "")
    	{
    		$metka++;
    	}
    if ($conflict>0)
    	{
    		$metka++;
    	}
    
    if ($metka == 0)
    	{
    		for ($i=0;$i<count($srid);$i++)
    		{
    			$this->changeRates($srid[$i],$rate[$i],$datenow,$activedate,$reason);
    		}
    		pageAlert::nextPageAlert("Ставки по тарифам успешно сохранены!", PAGE_ALERT_SUCCESS);
    	}

    Вот как кодят программисты, не слышавшие про исключения и return false при ошибках

    1Ad_Astra1, 18 Мая 2010

    Комментарии (7)
  5. PHP / Говнокод #3255

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    for($i=0; $i < $fldCount; $i++) {
          if($fldType[$i]==8) {
            eval("\$f_".$fld[$i]."_year = substr(\$f_".$fld[$i].", 0, 4);");
            eval("\$f_".$fld[$i]."_month = substr(\$f_".$fld[$i].", 5, 2);");
            eval("\$f_".$fld[$i]."_day = substr(\$f_".$fld[$i].", 8, 2);");
            eval("\$f_".$fld[$i]."_hours = substr(\$f_".$fld[$i].", 11, 2);");
            eval("\$f_".$fld[$i]."_minutes = substr(\$f_".$fld[$i].", 14, 2);");
            eval("\$f_".$fld[$i]."_seconds = substr(\$f_".$fld[$i].", 17, 2);");
          }
          else if ($fldType[$i]==6 && $fldValue[$i]) {
            ${"f_".$fld[$i]."_old"} = $fldValue[$i];
    
            $fileinfo = $db->get_row("SELECT * FROM `Filetable`
              WHERE `Field_ID` = ".$fldID[$i]." AND `Message_ID` = ".$message, ARRAY_A);
        
            if ($fileinfo) {
              ${"f_".$fld[$i]} = $SUB_FOLDER . rtrim($HTTP_FILES_PATH, "/") . $fileinfo["File_Path"] . "h_" . $fileinfo["Virt_Name"];
              ${"f_".$fld[$i]."_url"} = $SUB_FOLDER . rtrim($HTTP_FILES_PATH, "/") . $fileinfo["File_Path"] .        $fileinfo["Virt_Name"];
              ${"f_".$fld[$i]."_name"} = $fileinfo["Real_Name"];
              ${"f_".$fld[$i]."_size"} = $fileinfo["File_Size"];
              ${"f_".$fld[$i]."_type"} = $fileinfo["File_Type"];
            }
            else {
              preg_match("/^(.+?(\.[^.]+)?):(.+):(.+)$/", $fldValue[$i], $regs);
              ${"f_".$fld[$i]} = $SUB_FOLDER.$HTTP_FILES_PATH.$fldID[$i]."_".$message.$regs[2];
              ${"f_".$fld[$i]."_url"} = $SUB_FOLDER.$HTTP_FILES_PATH.$fldID[$i]."_".$message.$regs[2];
              ${"f_".$fld[$i]."_name"} = $regs[1];
              ${"f_".$fld[$i]."_size"} = $regs[4];
              ${"f_".$fld[$i]."_type"} = $regs[3];
            }
          }
        }

    И ещё один кусочек из того же файла (/netcat/message.php).

    telnet, 18 Мая 2010

    Комментарии (4)
  6. PHP / Говнокод #3254

    +166

    1. 1
    2. 2
    if($posting == 0) {
      if(!isset($posting) && count($fld)) {

    Всё та же NetCat 3.6.

    telnet, 18 Мая 2010

    Комментарии (5)
  7. PHP / Говнокод #3252

    +163

    1. 1
    $NETCAT_FOLDER = join( strstr(__FILE__, "/") ? "/" : "\\", array_slice( preg_split("/[\/\\\]+/", __FILE__), 0, -3 ) ).( strstr(__FILE__, "/") ? "/" : "\\" );

    Метод определения абсолютного пути к папке, лежащей на сколько-то уровней выше текущей.

    telnet, 18 Мая 2010

    Комментарии (7)
  8. PHP / Говнокод #3251

    +149

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    $sql = " SELECT *, DATE_FORMAT( `date`, '%d.%m.%y %H:%i:%s' ) as `date` FROM `messages` ORDER BY `id` DESC LIMIT {$n->start()},".PNUMBER;
    	if ( $qr=mysql_query( $sql ) )
    	{
    		
    			while ( $row = mysql_fetch_assoc( $qr ) )
    			 {
    				echo htmlspecialchars( $row['name'] ).' ['.htmlspecialchars( $row['date'] ).']<br>';
    				echo smile( htmlspecialchars( $row['message'] ) ).'<br>';
    				if ( $row['otvet'] )
    					echo '<b>Ответ: '.smile( htmlspecialchars( $row['otvet'] ) ).'</b><hr>';
    				else
    					echo '<hr>';
    			}
    	}
    	else 
    	{
    		echo 'Произошла системная ошибка';
    		mysql_function_error( 'Возникла ошибка при запросе. SQL: '.$sql.'|ERROR: '.mysql_error( ) );
    	}

    ...

    lugaro, 17 Мая 2010

    Комментарии (9)
  9. PHP / Говнокод #3249

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    if (!$defaults && !is_null($defaults))
    {
      $this->form->setDefaults($defaults->toArray());
    }

    Все три строчки, зато какие! :)

    kovel, 17 Мая 2010

    Комментарии (9)
  10. PHP / Говнокод #3247

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    for ( ; $k <= 15; ++$k ) {
    	$map[$k] = $mx2[$k];
    
    	// A
    	if ( $map[$k] == 10 && $k == 1 || $map[$k] == 10 && $k == 2 || $map[$k] == 10 && $k == 3 ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// B
    	if ( $map[$k] == $map[$k-1] ) {
    		$map[$k] = rand( 1, 9 );
    	}
    
    	// C
    	if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
    		$map[$k] = rand( 1, 9 );
    	}
    }

    $mx2 - массив из 15 элементов(элементы имеют значение от 1 до 10, расположены рандомно). Генерируется таким образом новый массив $map, в котором не могут быть два одинаковых элемента подряд(а так же текущий и пред-предыдущий не должны быть равны). Как бы сделал типичный программист? Зафигачил бы в цикле цикл, в которм бы проверял равенство текущего элемента и предыдущего. А вот так сделал мудак со стажем. Не удивительно, что периодически всё работает не так как надо...

    azzz, 17 Мая 2010

    Комментарии (3)