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

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
  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
//проверка привата
function NewPrivat()
 {
  global $connect, $user, $rid;
  $nup = intval(mysql_result(mysql_query("SELECT COUNT(id) FROM `privmsg_inbox` WHERE `mepl`='0' AND `id_user`='".$user['id']."'", $connect),0));
  if($nup != 0)
  {
   echo '<div class="bar">
         <a href="privmsg.php';
   if ($rid['id']!=0) echo '?idr='.$rid['id'];
   echo '"><b>Новые сообщения: <font color="red">'.$nup.'</font></b></a>
         </div>';

  }
  return ;
 }

// ..................

//выщитываем сколько онлайн
function online()
 {
  global  $user, $connect;
  $time = time();
  $in_on_line = '1500';
  $result_update = mysql_query("DELETE FROM `online` WHERE `unix`+$in_on_line < $time OR `login_id` = '".$user['id']."'", $connect);
  $result_insert = mysql_query("INSERT INTO `online` (`ip`,`unix`, `login`, `login_id`) VALUES ('".IPUSR."','$time', '".$user['nick']."', '".$user['id']."')", $connect);
  $online = mysql_num_rows(mysql_query("SELECT `id` FROM `online` WHERE `login`<>''", $connect));
  return $online;
 }


// ..................

//проверка авторизации
function user()
 {
  global $connect;
  if(isset($_SESSION['login']) and isset($_SESSION['pass']))
   {
    $l = acs($_SESSION['login']);
    $p = acs($_SESSION['pass']);
    $user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `nick`='$l' AND `pass`='$p' ;", $connect));
   }
  elseif (isset($_REQUEST['id']))
   {
    //$id = intval($_REQUEST['id']); 
	//$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id`='$id'", $connect));
   } 
  else $user=false; 
  return $user; 
 }


function php_decode($in){

очень удобно создавать вот такие функции когда используются они только один раз в скрипте

Запостил: Morgan Morgan, (Updated )

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

  • Ну какой же говно-код то, Морган? Я так же делаю чтобы однородный код был. Удобно когда у тебя все обращения к БД сконцентрированы в одном модуле. Если их в основной код выполнения запроса запихать, то кашка скорее всего получится.
    Если функция по длине превышает один экран, то стопудова бью на подфункции — психологически проще воспринимается код, в котором весь процесс на микрозадачи разбит.
    Ответить
    • я не зря добавил "используются они только один раз в скрипте"
      Ответить
      • Я на это как раз внимание и обратил. Чего в этом плохого то? Я лично смотрю с точки зрения организации исходников. Или вы любитель пооптимизить на скорость раз так вызов функции смущает?
        Ответить
      • Морган, вот я на тебя посмотрю как ты будешь пытаться понять логику выполнения запроса при условии что здесь будут раскрыты те три функции, которые используются только в одном месте:
        $data = diary_day_edit_prepare($storage, $date, $_SERVER['REQUEST_METHOD'] == 'POST');
        if (is_int($data))
        {
        	if ($data == 0)
        	{
        		http_status(404, 'Resource Not Found');
        		gc_out('exec/cgens/html/web/webres.not-found.gc.php');
        	} else {
        		http_status(503, 'Resource Unavailable');
        		gc_out('exec/cgens/html/web/webres.unavailable-maybe-exists.gc.php');
        	};
        	return;
        };
        
        /* - - - >  Уровень веб-ресурса < - - - */
        
        http_allow('GET,POST');
        
        if ($_SERVER['REQUEST_METHOD'] == 'POST')
        {
        
        	$data['header'] = (string)@$_POST['data_header'];
        	$data['content'] = (string)@$_POST['data_content'];
        
        	if (isset($_POST['act_preview'])) $show_preview = true;
        
        	require_once('exec/takers.inc.php');
        	$comps = array();
        	if (!diary_day_edit_take($data, $comps))
        	{
        		$state = 'bad-input';
        	} elseif (isset($_POST['act_save'])) {
        		if (!diary_save_day($storage, $data))
        		{
        			$state = 'saving-error';
        		} else {
        			require('exec/cgens/html/web/diary-day.saved.gc.php');
        			return;
        		};
        	};
        };
        Ответить
        • Код валидации для некоторых сложных объектов занимает ни одну сотню строк. Запихал в одну функцию, которую разбил на ещё десяток. Единичный вызов функции — плохо?! Зато отпадает вопрос об "умении разбираться в чужом коде".
          Ответить
          • ты не видишь разницы между своим примером и кодом который указан чуть выше.
            ты не можешь оценить степень Г. кода моего кода, как и я степень полезности твоего.
            Ответить
  • Читаю я комменты и понимаю, что мимолётные мысли об MVC, ORM и шаблонах проектирования здесь будут совершенно не к месту... (Без желания кого-то обидеть, просто констатирую факт.)
    Ответить
    • можно и без них, только с ними намного легче, а без них - жисть дерьмо
      Ответить
      • на самом деле - я тут подумал - что все зависит от уровня кодера. Например, школьникам не обьяснишь сразу же в первый месяц обучения, в чем польза этих всех дел... Вот они и будут клепать подобное говнецо, обреченное на отречение и перегной...

        другое дело, если стаж у кодера есть, а он все "по старинке" кодит, и сидит в своем говне, орет: "а зачем мне это знать, я и без этого прекрасно живу!"

        и еще другое дело, что сия круть может быть непригодна для конкретной задачи. Это либо низкоуровневые задачи типа драйверов, либо простые утилитки.

        и еще - в той же жабе, где все, кроме примитивов, является обьектом, примитивный хелловорлд, который на многих языках пишется в одну строчку, сразу требует ООП-подхода на 5 строк...
        Ответить
        • вы случайно с кепом не сеймперсуны?

          это я не в плане поехидничать, а про то, что "все действительно так", однако, всегда есть "но". вот они:

          - простая, но полезная утилка с уем, от которой нельзя просто и быстро открутить гуй, чтобы приделать кли или наоборот, с хардкоженными параметрами вроде "E:\MyFolder\exp0rt.xml" и отсутствующими кодестайлом и нейминг конвеншеном - это, согласитесь, печально.

          - к драйверу, конечно же, технология ORM врядли применима, но почему бы не использовать хотя бы структурные шаблоны? (тонкий намек, на то что шаблоны - это огого!)

          -в жабе хелоуворлд занимает три строчки и две закрывающие скобки. а еще:

          в си шарпе, где, кажется, все является объектами, примитивный хелоуворлд занимает 7 строчек (елси с неймспейсом) и да, требует ООП подхода.

          в С99 (примитивы и неочевидные объекты), обжектив С и в С++ хелоуворд занимет 5 строк и сразу требует знания стандарта, но не требует ООП.

          в, руби, пайтоне и пхп, где все является объектом а о примитивах можно только мечтать, примитивный хелоуворлд занимает одну строчку.

          а в хаскекле, строго-настрого типизтрованном, примитивный хелоуворлд занимает две строчки и сразу требует функционального подхода.

          Значит ли это что шарп круче всех? Или что порог вхождения у хаскеля чуть выше чем у пхп? Или на пайтоне нельзя писать в функцональном стиле?

          Вывод для меня не очевиден.
          Ответить
          • Эээ, прошу прощения,
            > в, руби, пайтоне и пхп, где все является объектом
            За два первых не скажу, но где это в пхп всё является объектом? Там ООП-то появилось только в чётвёртой версии, а начиная с пятой на него стало можно смотреть без смеха. Там замыкания-то только родились (5.3), да и то аки костыль.
            Ответить
        • > школьникам не обьяснишь сразу же в первый месяц обучения, в чем польза этих всех дел...
          Ну нет, в чём польза-то, на пальцах ещё можно растолковать, но вот научить этим пользоваться как раз будет проблематично - "всё равно что человека, едва научившегося держаться на воде, заставить переплыть Берингов пролив" (цопирайт С. Лукьяненко). А если человек не совсем нуб, то вот тут встанет как раз вторая проблема:
          > а он все "по старинке" кодит
          ... - то есть как его убедить, что "все эти дела" вообще-то не для труЪ-йоба-пацанскости придумали и вовсе не от хорошей жизни, а по необходимости. По себе могу сказать, что реальная польза ощущается после нескольких проектов, сделанных по-новому, когда, во-первых, набивается рука в новых привычках программирования, а, во-вторых, на практике по собственному опыту убеждаешься, что это действительно офигенно, и забываешь про всякие там while ($row = mysql_fetch_assoc($result)) echo $row['item']; как про кошмарный сон и происки нечистого.
          Ответить
    • Какие паттерны, чувак?

      Погляди, они юзают ГЛОБАЛЬНЫЕ ПЕРМЕННЫЕ (_POST)

      Хотя уже лет 25 как все знают, что юзать их не нужно
      Ответить
  • мда, без функций конечно будет круче, все одним ровным слоем...
    Ответить

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

Переведи на "PHP", guest!

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


    8