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

    +5

    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
    $DB_Connect = new DB_Connect(); // Подключаем класс базы данных
    $acces = 1; // 1 - Включено API, 0 - Отключено API
    if($acces == 1) { // Проверяем чтобы API было включено
    	$DB_Connect->connect(); // Подключаемся к базе данных
    	mysql_set_charset( 'utf8' ); // Изменяем кодировку базы данных
    		if($_GET['api_id']) $gameid = sText($_GET['api_id']); // Получаем API_ID
    		else $gameid = sText($_POST['api_id']); 
    		$game = mysql_fetch_array(mysql_query("SELECT id FROM `vii_apps` WHERE id='".$gameid."'")); // Запрашиваем ID с полученным API_ID
    		$row_sql = mysql_fetch_array(mysql_query("SELECT count(*) as cnt FROM `vii_api` WHERE `IP`='".$_SERVER["REMOTE_ADDR"]."' AND `data`>(".time()."-1)"));
    		// Запрашиваем количество запросов в секунду от этого человека
    		if($row_sql['cnt']<3) { // Проверяем частоту запросов от этого человека
    			if(!$game) json_error(2); // Проверяем существование этого приложения
    			else {
    				if($_GET['method']) $method = $_GET['method'];  // Получаем METHOD
    				else $method = $_POST['method']; 
    				if($_GET['sig']) $sig = sText($_GET['sig']); // Получаем SIG
    				else $sig = sText($_POST['sig']);
    				if($method=="users.get") { // Если это метод users.get
    					if($_GET['uids']) $uids = sText($_GET['uids']); // Получаем UIDS
    					else $uids = sText($_POST['uids']); 
    					$uids_explode = explode(",", $uids);
    					if($_GET['fields']) $fields = sText($_GET['fields']); // Получаем FIELDS
    					else $fields = sText($_POST['fields']);
    					$fields_explode = explode(",", $fields);
    					$row = mysql_fetch_array(mysql_query("SELECT `user_id` FROM `vii_users` WHERE `IP`='".$_SERVER["REMOTE_ADDR"]."' ORDER by `user_lastdate` DESC LIMIT 1")); 
    					// Получаем ID пользователя который делает запрос к API
    					$viewer_id = $row['user_id'];
    					$row_ = mysql_fetch_array(mysql_query("SELECT secret FROM `vii_apps_auth` WHERE user_id='".$viewer_id."' and app_id = '".$gameid."'")); 
    					// Получаем личный SECRET пользователя который делает запрос к API
    					$secret = $row_['secret'];
    					$api = new fbapi($gameid, $secret, $viewer_id); // Подключаем класс проверки SIG
    					$sig_data = $api->api('users.get',array('uids'=>$uids,'fields'=>$fields)); // Формируем запрос на получение SIG
    					if($sig == $sig_data) { // Проверяем правильность SIG
    						mysql_query("INSERT INTO `vii_api` (method,ip,data) VALUES('".$method."','".$_SERVER["REMOTE_ADDR"]."','".time()."')");
    						// Записываем выполнение API метода
    						$vars = array(); // Формируем начало ответа
    						$vars['response'] = array(); // Формируем переменную RESPONSE
    						foreach($uids_explode as $uid) { // Перебираем все полученные UIDS
    							$row = mysql_fetch_array(mysql_query("SELECT user_id,user_name,user_lastname FROM `vii_users` WHERE user_id='".$uid."'"));
    							$rd = array('uid'=>$row['user_id'],'first_name'=>$row['user_name'],'last_name'=>$row['user_lastname']); 
    							// Формируем массив для вставки его в ответ
    							if(count($fields_explode)!=0 and $fields_explode[0]!=null) { // Проверяем дополнительные поля
    								foreach($fields_explode as $field) { // Перебираем дополнительные поля
    									$rows = mysql_fetch_array(mysql_query("SELECT ".$field." FROM `vii_users` WHERE user_id='".$uid."'"));
    									if($field == "user_photo") {
    										if($rows[$fields]) $rd[$field] = "http://lineage18.ru/uploads/users/".$uid."/".$rows[$field];
    										else $rd[$field] = "http://lineage18.ru/templates/Default/images/100_no_ava.png";
    									} else $rd[$field] = $rows[$field]; // Добавляем в массив дополнительные поля
    								}
    							}
    							array_push($vars['response'],$rd); // Вставляем сформированный массив $rd в общий ответ
    						}
    						echo json_encode_cyr($vars); // Преобразуем нашу строку в JSON формат
    					} else json_error(3); // Ошибка не правильной SIG
    				} else if($method=="secure.withdrawVotes") { // Новый метод secure.withdrawVotes

    Пишем API на PHP

    d_fomenok, 29 Декабря 2015

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

    0

    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
    static public function countHandled()
    {
        $criteria = new CDbCriteria;
    
        $criteria->select .= ', SUM(`su`.`purchase_stage` = "in-progress") AS sum';
        $criteria->having = '`sum` > 0';
    
        $criteria->with = array(
            'siteUser' => array(
                'with' => array(
                    'interest'
                ),
                'join' => 'LEFT JOIN `site_users` AS `su` ON '
                    .'IF(LENGTH(`siteUser`.`phone`) = 11, SUBSTR(`siteUser`.`phone`, 2, 10), `siteUser`.`phone`) = '
                    .'IF(LENGTH(`su`.`phone`) = 11, SUBSTR(`su`.`phone`, 2, 10), `su`.`phone`)'
            )
        );
        $criteria->scopes = array(
            'notDone'
        );
        $criteria->compare('siteUser.purchase_stage', SiteUsers::PURCHASE_STAGE_LOST);
        $criteria->addNotInCondition('interest.reject_reason', array(
            SiteUserInterest::REJECT_REASON_TEST,
            SiteUserInterest::REJECT_REASON_SERVICE_TO
        ));
        $criteria->addCondition('`su`.`date_modified` >= DATE_SUB(NOW(), INTERVAL 2 DAY)');
    
        $criteria->group = '`t`.`site_users_return_id`';
    
        return self::model()->count($criteria);
    }
    
    static public function countCopied()
    {
        $criteria = new CDbCriteria;
    
        $criteria->select .= ', SUM(`su`.`purchase_stage` = "in-progress") AS sum';
        $criteria->having = '`sum` > 0';
    
        $criteria->with = array(
            'siteUser' => array(
                'with' => array(
                    'interest'
                ),
                'join' => 'LEFT JOIN `site_users` AS `su` ON '
                    .'IF(LENGTH(`siteUser`.`phone`) = 11, SUBSTR(`siteUser`.`phone`, 2, 10), `siteUser`.`phone`) = '
                    .'IF(LENGTH(`su`.`phone`) = 11, SUBSTR(`su`.`phone`, 2, 10), `su`.`phone`)'
            )
        );
        $criteria->scopes = array(
            'notDone'
        );
        $criteria->compare('siteUser.purchase_stage', SiteUsers::PURCHASE_STAGE_LOST);
        $criteria->addNotInCondition('interest.reject_reason', array(
            SiteUserInterest::REJECT_REASON_TEST,
            SiteUserInterest::REJECT_REASON_SERVICE_TO
        ));
        $criteria->addCondition('`su`.`date_created` >= DATE_SUB(NOW(), INTERVAL 2 DAY)');
    
        $criteria->group = '`t`.`site_users_return_id`';
    
        return self::model()->count($criteria);
    }

    - Найди мне одно отличие:
    Ответ автора:
    "- можно конешно и параметром
    - Насамом деле это два разных счета и для вычисления совпали критерии - я так это увидел
    - Можно соптимизировать, не вопрос)"

    У класса два статичных метода, в конечном итоге при условие что countHandled() ? countCopied() / countHandled() * 100 : 0
    Ладно, опустим что сам подход не очень оптимальный, но тут явно говнокод, аля контрл-ц\в,

    зы. Спешил походу, лентяй :)

    doommer, 29 Декабря 2015

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

    +7

    1. 1
    2. 2
    function api($method,$params=false) {
    if (!$params) $params = array();

    Олег Илларионов, Разработчик ВКонтакте
    Для тех кто не врубился:
    Можно написать $params = array()

    d_fomenok, 28 Декабря 2015

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

    −10

    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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    if($user_sett['profile'] == '1'){
    		$tpl->set('{display1}', 'none');
    		
    	} else {
    		$tpl->set('{display1}', '');	
    	}
    	
    		if($user_sett['friends'] == '1'){
    		$tpl->set('{display2}', 'none');
    		
    	} else {
    		$tpl->set('{display2}', '');	
    	}
    	
    		if($user_sett['albums'] == '1'){
    		$tpl->set('{display3}', 'none');
    		
    	} else {
    		$tpl->set('{display3}', '');	
    	}
    	
    		if($user_sett['videos'] == '1'){
    		$tpl->set('{display4}', 'none');
    		
    	} else {
    		$tpl->set('{display4}', '');	
    	}
    	
    		if($user_sett['audio'] == '1'){
    		$tpl->set('{display5}', 'none');
    		
    	} else {
    		$tpl->set('{display5}', '');	
    	}
    	
    		if($user_sett['mail'] == '1'){
    		$tpl->set('{display6}', 'none');
    		
    	} else {
    		$tpl->set('{display6}', '');	
    	}
    	
    		if($user_sett['groups'] == '1'){
    		$tpl->set('{display7}', 'none');
    		
    	} else {
    		$tpl->set('{display7}', '');	
    	}
    	
    		if($user_sett['news'] == '1'){
    		$tpl->set('{display8}', 'none');
    		
    	} else {
    		$tpl->set('{display8}', '');	
    	}
    	
    		if($user_sett['fave'] == '1'){
    		$tpl->set('{display9}', 'none');
    		
    	} else {
    		$tpl->set('{display9}', '');	
    	}
    	
    		if($user_sett['notes'] == '1'){
    		$tpl->set('{display10}', 'none');
    		
    	} else {
    		$tpl->set('{display10}', '');	
    	}
    	
    	
    		if($user_sett['settings'] == '1'){
    		$tpl->set('{display11}', 'none');
    		
    	} else {
    		$tpl->set('{display11}', '');	
    	}
    	
    		if($user_sett['apps'] == '1'){
    		$tpl->set('{display12}', 'none');
    		
    	} else {
    		$tpl->set('{display12}', '');	
    	}
    	
    			if($user_sett['ads'] == '1'){
    		$tpl->set('{display13}', 'none');
    		
    	} else {
    		$tpl->set('{display13}', '');	
    	}

    Вот что тяжёлые наркотики с парнем сделали

    d_fomenok, 28 Декабря 2015

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

    −1

    1. 1
    imagepng(imagecreatefromstring(file_get_contents($_FILES['userfile']['tmp_name'])), $_SERVER['DOCUMENT_ROOT'].'/user_imgs/'.$_SESSION["id"].'.png');

    Dego1n, 28 Декабря 2015

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?
    function  Показать($строка){
       print $строка;
    }
    
    ?>

    ааааааа шедевр!!!

    Govnokoders, 28 Декабря 2015

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $safeGet=$_GET;
    
    $registry = ipsRegistry::instance();
    $registry->init();
    
    $_GET=$safeGet; // fucking ips registry

    Люблю IPB

    ZhoZho, 26 Декабря 2015

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

    +5

    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
    <?if($DATE$='14.12.2015')?>17 дней до нового года<?endif?>
    <?if($DATE$='15.12.2015')?>16 дней до нового года<?endif?>
    <?if($DATE$='16.12.2015')?>15 дней до нового года<?endif?>
    <?if($DATE$='17.12.2015')?>14 дней до нового года<?endif?>
    <?if($DATE$='18.12.2015')?>13 дней до нового года<?endif?>
    <?if($DATE$='19.12.2015')?>12 дней до нового года<?endif?>
    <?if($DATE$='20.12.2015')?>11 дней до нового года<?endif?>
    <?if($DATE$='21.12.2015')?>10 дней до нового года<?endif?>
    <?if($DATE$='22.12.2015')?>9 дней до нового года<?endif?>
    <?if($DATE$='23.12.2015')?>8 дней до нового года<?endif?>
    <?if($DATE$='24.12.2015')?>7 дней до нового года<?endif?>
    <?if($DATE$='25.12.2015')?>6 дней до нового года<?endif?>
    <?if($DATE$='26.12.2015')?>5 дней до нового года<?endif?>
    <?if($DATE$='27.12.2015')?>4 дня до нового года<?endif?>
    <?if($DATE$='28.12.2015')?>3 дня до нового года<?endif?>
    <?if($DATE$='29.12.2015')?>2 дня до нового года<?endif?>
    <?if($DATE$='30.12.2015')?>1 день до нового года<?endif?>
    <?if($DATE$='31.12.2015')?>
    <?if($HOUR$='0')?>23 часа до нового года<?endif?>
    <?if($HOUR$='1')?>22 часа до нового года<?endif?>
    <?if($HOUR$='2')?>21 час до нового года<?endif?>
    <?if($HOUR$='3')?>20 часов до нового года<?endif?>
    <?if($HOUR$='4')?>29 часов до нового года<?endif?>
    <?if($HOUR$='5')?>18 часов до нового года<?endif?>
    <?if($HOUR$='6')?>17 часов до нового года<?endif?>
    <?if($HOUR$='7')?>16 часов до нового года<?endif?>
    <?if($HOUR$='8')?>15 часов до нового года<?endif?>
    <?if($HOUR$='9')?>14 часов до нового года<?endif?>
    <?if($HOUR$='10')?>13 часов до нового года<?endif?>
    <?if($HOUR$='11')?>12 часов до нового года<?endif?>
    <?if($HOUR$='12')?>11 часов до нового года<?endif?>
    <?if($HOUR$='13')?>10 часов до нового года<?endif?>
    <?if($HOUR$='14')?>9 часов до нового года<?endif?>
    <?if($HOUR$='15')?>8 часов до нового года<?endif?>
    <?if($HOUR$='16')?>7 часов до нового года<?endif?>
    <?if($HOUR$='17')?>6 часов до нового года<?endif?>
    <?if($HOUR$='18')?>5 часов до нового года<?endif?>
    <?if($HOUR$='19')?>4 часа до нового года<?endif?>
    <?if($HOUR$='20')?>3 часа до нового года<?endif?>
    <?if($HOUR$='21')?>2 часа до нового года<?endif?>
    <?if($HOUR$='22')?>1 часа до нового года<?endif?>
    <?if($HOUR$='23')?>Меньше часа до нового года!<?endif?><?endif?>
    <?if($DATE$='01.01.2016')?>С новым 2016 годом!<?endif?>

    Отсчет дней до нового года для uCoz без JavaScript
    Увидел случайно на одном сайте...

    WestlE, 26 Декабря 2015

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

    +3

    1. 1
    * @return boolean "No! Try not. Do. Or do not. There is no try." - Yoda

    sevenflash, 24 Декабря 2015

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

    0

    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
    <?
    //Ограничиваем время выполнения скрипта 3-мя минутами
    set_time_limit(180);
    
    //Подключаемся к MySQL, при неудаче выводим ошибку
    mysql_connect("localhost", "torrent", "password") or die("Could not connect to MySQL");
    
    //Выбираем БД, при неудаче выводим ошибку
    mysql_select_db("torrent") or die("Could not select database");
    
    //Переводим все общение с БД в кодировку utf8
    mysql_query("SET NAMES utf8");
    
    //Открываем файл указанный в url переменной "f"
    $fp = fopen($_GET[f], "r");
    
    //Запускаем цикл до конца строк в файле
    while (!feof($fp)) {
            //Считываем строку (да, функцию trim() выполнять не обязательно, но у каждого программиста свои "тараканы")
            $tmp = trim(fgets($fp));
            
            //Преобразуем строку в массив. За разделитель используем ";"
            $torrent = explode('";"', $tmp);
            
            //В первом и последнем элементе удаляем лишние символы "
            $torrent[0] = substr($torrent[0], 1);
            $torrent[6] = substr($torrent[6], 0, (strlen($torrent[6]) - 1));
            
            //Если раскомментировать следующую строку, то можно увидеть как распарсился первый торрент в файле
            //print '<pre>'; print_r($torrent); exit();
            
            //Вставляем данные текущего торрента в таблицу
            mysql_query("INSERT INTO `torrents` 
                (`name`,
                `hash`,
                `date`,
                `size`,
                `topic_id`,
                `cat_id`,
                `cat_name`) 
              VALUES 
                ('" . mysql_real_escape_string($torrent[4]) . "',
                '" . $torrent[3] . "',
                '" . $torrent[6] . "',
                '" . $torrent[5] . "',
                '" . $torrent[2] . "',
                '" . $torrent[0] . "',
                '" . mysql_real_escape_string($torrent[1]) . "')
            ");
    }
    //Закрываем файл
    fclose($fp);
    
    //Выводим сообщение о завершении работы
    print 'complete: ' . $_GET[f];
    ?>

    Импорт CSV в MySQL. Со швабры.

    gost, 23 Декабря 2015

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