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

    +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
    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
    <?php  //utf-8
    ...
    pre($_POST);
    $name=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$_POST['name']);
    $tel=preg_replace('/[^0-9\+\-\(\) ]/sui','',$_POST['tel']);
    $email=preg_replace('/[^\-0-9A-Za-z\._\@]/sui','',$_POST['email']);
    $city=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$_POST['city']);
    $adress=preg_replace('/<br \/>/sui',' ',nl2br($_POST['adress']));
    $adress=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$adress);
    $prim=preg_replace('/<br \/>/sui',' ',nl2br($_POST['prim']));
    $prim=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$prim);
    ...
    mysql_query("set character_set_client='utf8'");
    mysql_query("set character_set_results='utf8'");
    mysql_query("set collation_connection='utf8_general_ci'");
    $m=json_decode(trim($_COOKIE['aste_b']));
    $pin=parce_scv('artikul.csv');
    unset($pin[0]);
    
    foreach($pin as $key=>$val){
    	$p[$val[1]]=$val;
    	unset($p[$val[1]][1]);
    }
    $sum=0;
    foreach($m as $key=>$val){ $mm[$key]=$val; }
    ...
    foreach($mm as $key=>$val){
    	$sum=$sum+$p[$key][4]*($val/1000);
    	$s1=$p[$key][4]*$val/1000;
    	if($s1!=0) $out.='<tr><td align="center">'.$p[$key][2].'</td> <td>'.$p[$key][3].'</td> <td>'.(intval($val)).' граммов</td> <td align="center">'.$s1.'</td></tr> ';
    }
    ...
    $sql='INSERT INTO orders SET data=now()';
    mysql_query($sql);
    $id=mysql_insert_id();
    if($id<10) $idp='000'.$id;
    elseif($id<100) $idp='00'.$id;
    elseif($id<1000) $idp='0'.$id;
    
    $sql='UPDATE orders SET num="'.date('Ymd').$idp.'", name="'.$name.'", ..., adress="'.mysql_real_escape_string($adress).'<br>'.mysql_real_escape_string($prim).'", zakaz="'.mysql_real_escape_string($out).'" WHERE id='.$id;
    mysql_query ($sql);
    
    mail($email,'=?windows-1251?B?'.base64_encode(iconv('utf-8','cp1251','магазин')).'?=',iconv('utf-8','cp1251','...'), 
    'MIME-Version: 1.0\r\nContent-Type: text/html; charset=windows-1251 \r\nFrom: =?windows-1251?B?'.base64_encode(iconv('utf-8','cp1251',"сайт.ru")).'?=<info@сайт.ru>');
    
    function pre($in) {
    if(is_array($in)) array_walk($in,'pref'); else $in=htmlspecialchars($in);
    echo '<pre>';
    print_r($in);
    echo '</pre>';
    }
    function pref(&$item1,$key){
    if(is_array($item1)){ array_walk($item1,'pref'); } 
    else { $item1=htmlspecialchars($item1); }
    }
    function parce_scv($in) {
    $in=iconv('cp1251','utf-8',file_get_contents($in));
    $in=preg_replace('/\n\r{0}/sui',' ',$in);
    $in=nl2br($in);
    $in=explode('<br />',$in);
    foreach($in as $key=>$val) {
    $in[$key]=preg_replace('/\s+/sui',' ',trim($val));
    preg_match_all('/./sui',$in[$key].';',$tmp);
    $simv=array_shift($tmp[0]);
    $old_simv=$simv;
    $k=0;
    while(count($tmp[0])>0){
    $k++;
    if($simv!='"'){
    	while($simv!=';'){
    	$out[$key][$k].=$simv;
    	$old_simv=$simv;
    	$simv=array_shift($tmp[0]);
    	}
    } else {
    	while($simv!=';' OR $old_simv!='"'){
    	$out[$key][$k].=$simv;
    	$old_simv=$simv;
    	$simv=array_shift($tmp[0]);
    	}
    }
    $old_simv=$simv;
    $simv=array_shift($tmp[0]);
    $out[$key][$k]=preg_replace('/^"|"$/sui','',$out[$key][$k]);
    $out[$key][$k]=preg_replace('/""/sui','"',$out[$key][$k]);
    $out[$key][$k]=trim($out[$key][$k]);
    }
    }
    return $out;
    }
    ?>

    Решил выставить, ну а вам решать, достоин код этого сайта или нет.

    P.S. кое что убрал (емайлы, ссылки, переводы строк, куски текста заменил на "..."), что бы не было понятно на каком сайте сие "живёт", и вписаться в 4000 символов (хотелось весь код показать).

    Запостил: beetle, 21 Сентября 2011

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

    • Я как то правил сайт написанный таким образом. Могу посочувствовать.
      Ответить
      • Ужас, настоящая мусорка. Весь сайт в одном файле что-ли?)
        Ответить
    • brainphupk
      Ответить
    • > iconv('utf-8','cp1251','магазин')
      да, сложно сам файл кодировать в утф
      Ответить
      • ну код в блокноте писался, по форматированию видно
        Ответить
        • форматирование я испортил, прошу прощение.

          код в общем имеет 6247 символов, тут разрешено выставлять не более 4000.
          Ответить
      • я в начале написал "<?php //utf-8" подразумевая что файл на utf-8.

        и куски кода эти оставил, так как смысл перекодирования мне остался не понятным
        Ответить
        • видимо, раньше был cp1251, потом таки перекодировали... а смысл - подстраховка, наверное
          Ответить
          • Ага, так же можно сказать и про preg_replace а после mysql_real_escape_string.
            Ответить
    • >parce_scv('artikul.csv');

      Интересненько.
      Ответить
    • Всегда удивлял народ, пришедший сюда за советом, я думаю помогать и советовать, каждому хватает и на работе.
      Ответить

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