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

    +147.8

    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
    <?php
    
    // *** Первая версия ***
    
    $numb = $_GET["n"]; // Получаем информацию
    $from = $_GET["f"];
    $to = $_GET["t"];
    
    if (!$numb or !$from or !$to) { // Проверяем есть ли информация, и полна ли она
    echo "<html><head><title>Перевод между сист. исчисл. 2<->36</title></head><body>"; // Выводим справку и ошибку
    echo "<center><u><i>Справка:</i></u> index.php?n=<b>число</b>&f=<b>исходная сист. исчисл.</b>&t=<b>конечная сист. исчисл.</b><hr></center>";
    echo "<center><b>ОШИБКА: Данные не обнаружены или неполные!</b><br>Возможно, что вы тут в первый раз...</center>";
    echo "</body></html>";
    } else {
    echo "<html><head><title>Перевод между сист. исчисл. 2<->36</title></head><body>"; // Выводим справку и результаты
    echo "<center><u><i>Справка:</i></u> index.php?n=<b>число</b>&f=<b>исходная сист. исчисл.</b>&t=<b>конечная сист. исчисл.</b><hr></center>";
    echo "<center>Исходное число: $numb<br>";
    echo "Начальная сист. исчисл.: $from<br>";
    echo "Конечная сист. исчисл.: $to<br>";
    echo "Результат: ";
    echo base_convert("$numb",$from,$to);
    echo "</center></body></html>";
    }
    
    ?>
    
    <?php
    
    // *** Вторая версия - форма ***
    
    echo "<html><head><title>Перевод между С.И.</title></head><body>"; // Выводим форму
    echo "<center><form method='post' action='new_e.php'>Исходное  число:<br><input type = 'text' name='n'><hr>";
    echo "Исходная С.И.:<br><input type='radio' name='f' value='2'>BIN (2)<br>";
    echo "<input type='radio' name='f' value='8'>OCT (8)<br>";
    echo "<input type='radio' name='f' value='10'>DEC (10)<br>";
    echo "<input type='radio' name='f' value='16'>HEX (16)<br>";
    echo "<hr>";
    echo "Конечная С.И.:<br><input type='radio' name='t' value='2'>BIN (2)<br>";
    echo "<input type='radio' name='t' value='8'>OCT (8)<br>";
    echo "<input type='radio' name='t' value='10'>DEC (10)<br>";
    echo "<input type='radio' name='t' value='16'>HEX (16)<br>";
    echo "<hr><input type='submit' value='Выполнить'></form></center>";
    echo "</center></body></html>";
    
    ?>
    
    <?php
    
    // *** Вторая версия - вычисления ***
    
    $numb = $_POST["n"]; // Получаем информацию
    $from = $_POST["f"];
    $to = $_POST["t"];
    
    echo "<html><head><title>Перевод между С.И.</title></head><body>"; // Выводим результаты
    echo "<center>Исх. число: $numb<br>";
    echo "Начальная С.И.: $from<br>";
    echo "Конечная С.И.: $to<br>";
    echo "Результат: ";
    echo base_convert("$numb",$from,$to);
    echo "<hr><center><a href='/new.php'>Назад</a></center>";
    echo "</center></body></html>";
    
    ?>

    Одно из первых моих творений, переводит числа в различные системы исчисления. Представлено две первые версии, одна получала через GET, а другая уже через POST. Первая "ручная" (то есть вбиваем в адрес данные ручками), а другая состояла из двух файлов (формы и собственно обработка и выполнение операции с полученных данных).

    Говнокод заключается в злоупотреблении ECHO (не думаю, что закинуть полученные данные в переменные тоже грех особый). Позже в третьей версии скрипта все было приведено в норму, и два файла были совмещены в один :)

    Запостил: Мартин, 06 Марта 2010

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

    • XSS vulnerability... ?from=1<script src...
      Ответить
    • покрасовался? :)

      вот давайте закидаем сайт (неинтересными) примерами своих первых шагов...

      мде... идея хорошая у ресурса, но начинается (имхо), та же фигня, которая привела башорг к модерации. и думаю, тут тоже скоро будут модерировать
      Ответить
      • Тебе пора на пенсию, старик.
        Ответить
      • А ну-ка скажи мне, когда это на бошорке модерации не было, а?
        Ответить
        • скажи мне когда она появилась, и я скажу тебе когда ее не было :) а то забыл (увы) записать столь памятную для меня дату :)
          Ответить
    • по-моему "злоупотребление" echo в php как раз таки знак хорошего тона. Не говнокод по меиу мнению
      Ответить
      • И что однако в этом хорошего?
        Ответить
      • Что тут хорошего? Когда мог бы вывести одной командой... Но не додумался). Это как бы пустая трата ресурсов
        Ответить
    • $numb = $_GET["n"];
      $from = $_GET["f"];
      $to = $_GET["t"];
      ФуФуФу. Такие имена...
      Ответить
    • С echo всё нормально. А вот это: "сист. исчисл." - на странице что, места мало?
      Ответить
    • школотизмом запахло...
      совершенно не остро и уныло!
      Ответить
    • Ну и запах :(
      Ответить
    • показать все, что скрытоvanished
      Ответить

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