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

    +158

    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
    <?
    if(!isset($_POST['vote'])){
    print"<form action='' method='post' name='vote'>";
    print"<table width='400' height='50' align='center'>";
    $conn_id=@mysql_connect("localhost","root","") or
     die("Ошибка соединения с сервером БД !");
    @mysql_select_db("db");
    $q=@mysql_query("SELECT * FROM `pools` WHERE status='on'",$conn_id) or
     die("Ошибка запроса к БД !");
    if(@mysql_num_rows($q)==0){
    echo"Голосования не найдены !";
    }else{
    $id=mt_rand(1,@mysql_num_rows($q));
    unset($q);
    $q=@mysql_query("SELECT * FROM `pools` WHERE id='".$id."'",$conn_id) or
     die("Ошибка запроса к БД !");
    $row=@mysql_fetch_array($q);
    print"<tr><Td colspan='2'>Q: ".$row['question']."</td>
    </tr>";
    unset($q);
    $vote_check=@mysql_query("SELECT id FROM `alredy_vote` WHERE ip='".
     $_SERVER['REMOTE_ADDR']."'",$conn_id) or die("Ошибка запроса к БД !");
    $q=@mysql_query("SELECT id,value FROM `pools_answs` WHERE vote_id='".
     $id."'",$conn_id) or die("Ошибка запроса к БД !");
    if(@mysql_num_rows($q)==0){
    die("Вопросы не найдены !");
    }else{
    while($row=@mysql_fetch_array($q)){
    $row2=@mysql_fetch_array($q2);
    if(@mysql_num_rows($vote_check)!=0){
    $q2=@mysql_query("SELECT count FROM `pools_answs` WHERE id='".$row['id']."'",
     $conn_id) or die("Ошибка запроса к БД !");
    print"<tr><td>".$row['value']."</td><td>".
     $row2['count']."</td></tr>";
    }else{
    print"<tr><td>".$row['value']."</td><td><input
     type='radio' name='answer' value='".$row['id']."'></td></tr>";
    print"<input type='hidden' name='id' value='".$id."'>";
    print"<tr><td colspan='2'><input type='submit' name='vote'
     value='Проголосовать'></td></tr>";
    }
    }
    }
    }
    print"</table>";
    print"</form>";
    @mysql_close($conn_id);
    }else{
    $id=$_POST['id'];
    $answer=$_POST['answer'];
    $conn_id=@mysql_connect("localhost","root","")
     or die("Ошибка во время запроса к серверу !");
    @mysql_select_db("db");
    $q=@mysql_query("SELECT id FROM `aredy_vote` WHERE ip='".
     $_SERVER['REMOTE_ADDR']."'",$conn_id)
     or die("Ошибка во время запроса к серверу !");
    if(@mysql_num_rows($q)!=0){
    print"Вы уже участвовали в данном голосовании !";
    }else{
    $q=@mysql_query("INSERT into `alredy_vote` VALUES('','".$id."','".
     $_SERVER['REMOTE_ADDR']."')",$conn_id) or die("Ошибка запроса к БД !");
    unset($q);
    $q=@mysql_query("UPDATE `pools_answs` SER count=count+1 WHERE id='".$id.
     "' AND vote_id='".$_POST['answer']."'",$conn_id) or die("Ошибка запроса к БД !");
    print"Ваш голос учтён. Спасибо за участие !!";
    }
    @mysql_close($conn_id);
    }
    ?>

    Приятного аппетита ;-)

    Запостил: nikelin, 11 Октября 2010

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

    • классический index.phtml 200х года... аж ностальгия поднялась )
      Ответить
    • ну и где здесь говнокод?
      Ответить
    • А что это за конструкция такая?.. (мозг завис)
      $q=@mysql_query("...") or die("...");
      Ответить
      • Ну, эту конструкцию часто применяли раньше: $x or die("fault"). Тип, если $x не вернул истину то нафиг всё убиваем :-)
        Ответить
        • я имею ввиду конструкцию @...or die()
          для чего в таком случае подавляются ошибки?.
          Ответить
          • @... - насколько я понимаю, это подавление возможности выброса чего-то в поток вывода, результат функции при этом не подавляется.
            Ответить
          • к.о. -- умереть без выдачи стандартного сообщения
            Ответить
      • Чего минусуете?.. все что ли так делают?
        я понимаю если было бы так:
        $q=mysql_query("...") or die("...");
        или так:
        $q=@mysql_query("...");
        --
        зачем подавлять вывод в поток сообщений об ошибках, если функция уже используется в тандеме с "...or die()"??
        Ответить
        • затем что по результатам ошибки можно много чего интересного узнать (привет кулхацкерам)...
          Ответить

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