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

    +162.6

    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
    <?php
    
    
    if($_GET['id'] == 10 ){
    
    $location = "/articles/lyustry/lustra-na-kuhne/";
    }elseif($_GET['id'] == 13 and $_GET['id_type'] == 17){
    $location = "/market/interernye_svetilniki/lyustry/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 22 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/bolshie_lyustry/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 34 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/lyustry/bolee_6_rozhkov/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 2 ){
    $location = "/market/interernye_svetilniki/podvesnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 40 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/podvesnye/odinochnyj_podves/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 41 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/podvesnye/trojnoj_i_bolee/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 5 ){
    $location = "/market/interernye_svetilniki/nastenno-potolochnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 35 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/potolochnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 52 ){
    $location = "/market/interernye_svetilniki/vlagozawitnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 51 ){
    $location = "/market/interernye_svetilniki/podsvetka_kartin/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 7 ){
    $location = "/market/interernye_svetilniki/bra/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 37 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/bra/odnorozhkovye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 38 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/bra/dvuhrozhkovye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 39 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/bra/treh_i_bolee_rozhkovye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 1 ){
    $location = "/market/interernye_svetilniki/tochechnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 42 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/tochechnye/odinochnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 43 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/tochechnye/dvojnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 44 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/tochechnye/tri_i_bolee/";
    }
    elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 8){
    $location = "/market/interernye_svetilniki/nastolnye_lampy/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 46 and $_GET['act'] == 'sub_type'){
    $location = "/market/interernye_svetilniki/nastolnye_lampy/ofisnye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 47 and $_GET['act'] == 'sub_
    type'){
    $location = "/market/interernye_svetilniki/nastolnye_lampy/prikrovatnye_domashnie_ili_interernye/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 6 ){
    $location = "/market/interernye_svetilniki/torshery/";
    }elseif(
    $_GET['id'] == 13 and $_GET['id_type'] == 9 ){
    $location = "/market/ulichnye_svetilniki/";
    }...
    И так далее..

    Клиент поставил нашу CMS, на старой были ссылки типа /?id=10 и т.д. Сделал ему для примера скрипт редиректа с использованием switch case и вот что я увидел через две недели 0_0 Неприкрытый говнокод.

    Запостил: VeroLom, 01 Апреля 2010

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

    • говеная у вас CMS если клиенту приходится дописывать функционал при том что вы в курсе того что ему нужно
      Ответить
      • Не буду же я обучать клиента XML и XSLT...
        Ответить
        • идите со своими xslt преобразованиями в прошлый век
          Ответить
      • показать все, что скрытоВариант, который я ему сделал, был самый простой и понятный. Добавить
        case 10: $location = "/articles/lyustry/lustra-na-kuhne/";
        проще.
        Ответить
        • Ваш вариант это тоже самое по сути
          Ответить
          • Какой тогда вариант можно считать нормальным? Что бы он ещё наглядным был для человека, поверхностно разбирающегося в PHP.
            Ответить
    • не пойму за что минусуют :)
      Ответить
    • Собственно идея с id ужасная, можно в массив ввести, где ключ - id, а значение - ссылка, также достаточно наглядно, а лучше mod rewrite + ЧПУ
      Ответить
      • чпу - это черезпериодная компенсация? :D
        Ответить
      • У нас есть ЧПУ. Прогеры на этот счёт отработали на пять с плюсом. Только вот после перехода с других CMS, где не было ЧПУ, у некоторых появляются проблемы.
        Ответить
    • [:||||:]
      Ответить
    • Клиент - молодец, не будучи прогером он сделал себе что хотел. А вот вы и ему инструмента для этого не дали, и сами не сделали, да еще и насмехаетесь над ним.
      Ответить
      • Согласен. Клиента на место кодера
        Ответить
      • Я ему сделал наглядно и более корректно. Хотя, изначально был только id и case, ИМХО, вполне подходил.
        Ответить
    • если понадобилось писать такое, то это вообще не CMS, это просто скрипт, причем хреновый!
      Ответить
      • В CMS есть несколько вариантов редиректа, но в данном случае проще было написать клиенту скрипт.
        Ответить
        • Если вы с клиента денги берете то будет любезны сделать все сами. А то так можно вообще долеко пойти хочет клиент себе сайт а ты ему ставишь php и книгу даришь и все денжки в карман.
          Ответить
          • Мы не занимаемся дизайном, вёрсткой, написанием кастомных решений, исправлением чужого кода и прочим.
            Ответить
    • >> $_GET['id'] == 13 and $_GET['id_type'] == 47 and $_GET['act']
      неужели нельзя один раз вначале проверок написать
      $id = (int)$_GET['id'];
      $type = (int)$_GET['id_type']
      $act = (string)$_GET['act'];
      и все проверки будут в виде if ($id==13 && $type==47 && $act=='sub_type')
      по крайней мере более локанично и яснее...
      если же по теме как хранить ЧП-ссылки, то тут ответ один:
      в базе с полями [id,type,act,url] и выдавать при полном соответсвии всех нужных и отсутсвии лишних параметров...
      Ответить
      • Боюсь, это не спасет. Тут только уринотерапия поможет. :)))
        Ответить
        • Как оказалось, это делал...гм...разработчик, который предлагал клиенту свою самописную CMS (при чём, почти за аналогичную стоймость). Боюсь представить, что там за CMS =0
          Ответить

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