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

    +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
    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
    <?php
    /* В настройках кабинета необходимо указать "Проверять md5 на ссылках",
    чтобы нельзя было заплатить сумму отличную от заданной в переменной $summa */
    $summa=50; //Стоимость доступа к платному разделу, в рублях
    $period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа.
    $login='demo1'; //Ваше "Имя пользователя" (логин) в системе Onpay.ru
    $key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе Onpay.ru
    /* Для того, чтобы закрыть доступ к папке, данный код необходимо размещать в индексном файле (index.php) */
    $path='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //Путь к файлу с этим кодом (определяется автоматически), например: http://onpay.ru/dir/index.php
    $access=0; //Запрещаем доступ, по умолчанию (0 = доступ закрыт, 1 = доступ открыт)
    $code='';
    $error='';
    //Функция округления для md5
    function to_float($sum) {
    if (strpos($sum, ".")) {$sum=round($sum,2);}
    else {$sum=$sum.".0";}
    return $sum;
    }
    /* Подключаемся к базе данных, если нажали на кнопку оплатить или ввели код доступа */
    if(isset($_POST['pay']) || isset($_POST['code'])) {
    $db_host='localhost'; //Хост сервера базы данных (домен или IP-адрес)
    $db_user='root'; //Имя пользователя БД
    $db_pass=''; //Пароль БД
    $db_name='pays'; //Название базы данных
    $db_tabl='payments'; //Название таблицы в которой будут храниться платежи
    if(!mysql_connect($db_host, $db_user, $db_pass)) {echo 'Невозможно подключиться к серверу баз данных';exit;} //Подключение к серверу баз данных
    if(!mysql_select_db($db_name)) {echo 'Не получилось выбрать базу данных '.$db_name;exit;} //Выбор базы данных
    }
    /* Разбираем данные, отправленные через форму*/
    if(isset($_POST['pay'])) { //Если нажали на кнопку покупки кода, то генерируем код, сохраняем его в базу данных и выводим форму оплаты:
    if(is_numeric($summa)) { //Если сумма введена корректно
    $sql = "INSERT INTO $db_tabl SET ".
    "path='$path',".
    "sum='$summa',".
    "payed=0,".
    "date=".time().",".
    "ip='".$_SERVER['REMOTE_ADDR']."';"; //Запрос в базу данных на создание новой записи
    $result=mysql_query($sql); //Добавляем новую строку в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    $id=mysql_insert_id(); //Получаем id записи
    $code=$id.substr(time(),-7); //Создаем секретный код - соединяем уникальный номер строки в базе данных (id) и последние 7 знаков текущего времени в секундах (коды доступа не должны повторяться)
    $sql = "UPDATE $db_tabl SET code='$code' WHERE id='$id';"; //Запрос в базу данных, для добавления кода доступа
    $result=mysql_query($sql); //Сохраняем код в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    $sum_for_md5=to_float($summa);
    $md5check=md5("fix;$sum_for_md5;RUR;$code;yes;$key"); //Создаем проверочную строку, которая защищает платежную ссылку от изменений
    $url="http://secure.onpay.ru/pay/$login?pay_mode=fix&pay_for=$code&price=$summa&currency=RUR&convert=yes&md5=$md5check&url_success=".$path; //Формируем платежную ссылку
    /*Выводим код*/
    ?><p style="font-size:14pt;color:blue;">Ваш код доступа: <b><?=$code; //Выводим код ?></b> (сохраните его в надежном месте)<?php
    /*Выводим форму оплаты*/
    ?><h1><a target="_blank" href="<?=$url; //Выводим платежную ссылку ?>">Оплатить код доступа:</a></h1>
    <iframe src="<?=$url; //Выводим платежную ссылку ?>" width="195" height="600" frameborder=no scrolling=no></iframe><?php
    } else unset($_POST['pay']); //Удаляем элемент массива (чтобы выводилась кнопка покупки кода)
    } else unset($_POST['pay']);
    } else unset($_POST['pay']); //Конец условия if(is_numeric($summa)) { //Если сумма введена корректно
    } elseif(isset($_POST['code'])) { //Если ввели код, то проверяем его в базе данных и если верный, то сохраняем в COOKIE
    $code=intval($_POST['code']); //Код должен быть целым числом
    $sql = "SELECT * FROM $db_tabl WHERE code='$code' AND path='$path' AND payed>=sum AND date>=".time().";"; //Проверка кода
    $result=mysql_query($sql); //Сохраняем код в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    if($row=mysql_fetch_assoc($result)) { //Если в базе данных найдена строка с введенным кодом для данной директории и он не просрочен, то сохраняем код
    $access=1; //Разрешаем доступ
    } else $error='Введен неправильный код доступа.';
    }
    } //
    if($access == 0) { //Если доступ запрещен, то выводим форму для покупки или ввода оплаченного кода
    ?><p style="font-size:14pt;font-weight:bold;">Доступ закрыт.<?php
    ?><p style="font-size:14pt;font-weight:bold;color:red;"><?=$error; //Выводим ошибки?><?php
    if(!isset($_POST['pay'])) { //Если не выведена форма оплаты
    ?><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
    <input style="font-size:16pt;font-weight:bold;color:red;" type="submit" name="pay" value="Купить доступ до <?=date('H:i:s d.m.Y',time()+$period); //Выводим дату ?> всего за <?=$summa; //Выводим сумму ?>&nbsp;руб.">
    </form><?php
    }
    ?><p><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
    <input style="font-size:14pt;" type="text" name="code" value="<?=$code; //Выводим текущий код доступа, при его наличии ?>">
    <input style="font-size:14pt;" type="submit" value="Ввести оплаченный код доступа">
    </form><?php
    exit; //Прекращаем выполнение скрипта и выходим
    /*Все, что расположено ниже этой строки - не выводится без верного кода доступа. */
    } //Конец условия if($access == 0) { if(isset($_POST['pay'])) {
    ?>
    <h1>Доступ по коду <u><?=$row['code'];?></u> разрешен до <?=date('H:i:s d.m.Y',$row['date']);?></h1>
    <p>Получено: <?=$row['payed'];?>&nbsp;руб.
    <p>Цена продления: <?=$row['sum'];?>&nbsp;руб.
    <p>onpay_id: <?=$row['onpay_id'];?>
    <p><a href=" <?=$row['path'];?>">Секретная ссылка</a>

    Автор задал на тостере вопрос: "я читал про куки но ничего не понял, дайте готовое решение что бы использовать с моим кодом"

    Запостил: dentelis, 08 Ноября 2014

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

    • >>дайте готовое решение что бы использовать с моим кодом

      Ну тут только Гудвин поможет
      Ответить
    • POST /dir/index.php HTTP/1.1
      Host: -', sum='50', payed=50, date='2051244000', path='http://onpay.ru/dir/index.php', ip='127.0.0.1', -- '
      User-Agent:	Mozilla/5.0 Gecko/20100101 Firefox/25.0
      Referer:	http://onpay.ru/
      Content-Type:	application/x-www-form-urlencoded; charset=UTF-8
      
      pay=50
      Ответить
    • Это отсюда, похоже: http://wiki.onpay.ru/doku.php?id=closed-paid-sample
      Ответить
      • PHPstyle похож на эболу. Он распостраняется с безумной скоростью.
        Вот мы тут с Вами сидим, а сотня хомяков уже читает этот код и учица по нему программировать.

        Во истину: PHP должен быть запрещен, а Расмус -- расстрелян.
        Ответить
        • Вот уже и до ГК добралась.
          Эбола — очередная псевдоэпидемия, зафорсенная сми чтобы срубить бабла на "борьбе" с ней. Наживаются все причастные — акции компании производящей вакцину ракетой идут вверх, фонд ООН опять выделяет сотни бабла, схема попила уже откана до автоматизма (атипичная пневмония, куриный, свинной грипп, итд).
          Ответить
          • Да-да, Эболу и СПИД придумало ЖОП (zog). Как и ПХП, кстати
            Ответить
            • Следует заметить про спид я ничего не говорил. Но вот очевидный факт, что "эпидемии" убившие меньше людей, чем те же прививки или тупо сдохло от голода. Спрашивается: кому выгодно постоянно муссировать эту тему?

              Копипаста в тему:
              Пациент в Зимбабве: Доктор, у меня отваливаются уши.
              Врач в Зимбабве: Да это какая-то хуйня! А что вы делали?
              Пациент: Ебал гусей.
              Доктор: Так у вас гусиная хуйня!
              Пациент: Спасибо, доктор! (умирает)
              Доктор (записывает в журнал): Пациент умер от гусиной хуйни.
              Пресс-служба минздрава Зимбабве: За прошедшую неделю в Зимбабве умерло две с половиной тысячи человек от голода, пять тысяч четыреста от отравления протухшими бананами и один человек от гусиной хуйни.
              Журналист (записывает): Гусиная хуйня вошла в список трех главных причин смертности в Зимбабве.
              Новостное агентство: В Зимбабве участились случаи заболевания неизлечимой гусиной хуйней.
              Телеканал: Неизвестное ранее заболевание гусиной хуйней выкашивает население Зимбабве. Министерство здравоохранения Зимбабве призывает не паниковать.
              Научное светило А: Да, гусиная хуйня не известна науке и в этом ее главная угроза.
              Авиакомпания Конго Эйр: Мы прекращаем все полеты в Зимбабве до разрешения эпидемии гусиной хуйни.
              Научное светило Б: Власти скрывают! На самом деле гусиная хуйня уже проникла в Европу — в Амстердаме видели чихающего негра с гусем под мышкой.
              Пресса (публикует фотографии гусей): Гагакающие убийцы рядом!
              Политик: Для борьбы охватившей мир эпидемией гусиной хуйни крайне необходимо истребить всех гусей.
              Милиция (козыряет): Будет сделано.
              Владельцы гусиных ферм: Да вы что, охуели? (Красиво дерутся с милицией под щелканье вспышек прессы)
              Пресса: Заговор владельцев гусиных ферм угрожает национальной безопасности!
              Министр здравоохранения Монголии: Для спасения страны от эпидемии гусиной хуйни, которая вплотную подобралась к нашим границам, нам крайне необходимо выделить сто миллионов долларов на переоснащение лаборатории по борьбе с утиной хуйней.
              Ответить
              • >> "эпидемии" убившие меньше людей, чем прививки
                Кстати, своей смертью умерло больше людей чем от эпидемии испанки. Следовательно, испанки не существовало.
                Ответить
                • >своей смертью умерло больше людей чем от эпидемии испанки
                  За одинаковый промежуток времени?

                  За год только в Африке умирает от голода 50-100 тысяч людей.
                  От страшной эпидемии свинного гриппа во всем мире умерло около 25 тысяч.
                  Ответить
                  • >>За одинаковый промежуток времени?
                    А что, от прививок тоже пять тыщ человек померло за последний год?
                    Ответить
                  • Поймите меня правильно: я не готов спорить с Вами, у меня нет аргументов, и я не изучал вопрос, но мне кажется что тут есть нарушение логики: "от голода умерло больше чем от FOO => foo does not exist".

                    Разве нет?
                    Ответить
                    • И снова попытка засунуть мне в рот, то чего я не утверждал. Сначала спид, потом это:
                      >есть нарушение логики: "от голода умерло больше чем от FOO => foo does not exist".

                      Разве я где-то я сказал "не существует"? По-моему речь шла несколько о другом. Страшная паника и шум разводимые сми около некоего заболевания, на деле никак не попадают под определение эпидемии.

                      Ведь если даже ВОЗ постфактум признала что масштабы свинного гриппа были преувеличены и всё это афера?
                      Ответить
                      • >> не попадают под определение эпидемии.
                        Дайте пожалуйста определение эпидемии

                        >> ВОЗ постфактум признала что масштабы свинного гриппа были преувеличены и всё это афера
                        а можно пруф?
                        Ответить
                        • >а можно пруф?
                          В гугле забанили?
                          Например:
                          http://www.asfera.info/news/society/2010/01/27/uchenie_ofitsiano_priznali_svinoy_gripp_glavnoy_afero_35492.html

                          http://enews.md/news/view/4140/
                          Ответить
                          • Принято!)
                            Правда в цитатах речь идет всё же не об афёре, а о приувеличении угрозы ради продажи лекраств.

                            Собственно все производители так поступают: продавцы средств гигиены рассказывают нам что ужасные бактерии убьют нас если мы не купим их мыло и средство для мытья толчка.

                            Тут тоже самое, просто в бОльших масштабах.

                            Резюмируя:
                            1. Эпидемия всё же существует. От нёё мрут жители Африки.
                            2. Количество умерших от прививок тут непричем
                            3. Недобросовестные продавцы вакцины накручивают баттхёрт чтобы продать по-больше своих лекарств
                            Ответить
                            • >1. Эпидемия всё же существует.
                              Существует вирус. От чего там мрут жители Африки, как считают число жертв пока что доподлинно неизвестно. Для эпидемии нужен переход за некий процентый порог, а не единичные случаи. 5000 жертв, это в пределах статистической погрешности.

                              >2. Количество умерших от прививок тут непричем
                              Довольно большое число привитых поимели проблемы со здоровьем или скоропостижно склеили ласты.
                              Пруф:
                              http://newsland.com/news/detail/id/427990/

                              >3. Недобросовестные продавцы вакцины накручивают баттхёрт чтобы продать по-больше своих лекарств
                              >Правда в цитатах речь идет всё же не об афёре, а о приувеличении угрозы ради продажи лекраств.

                              Ну об этом я сразу и сказал.
                              Эбола — очередная псевдоэпидемия, зафорсенная сми чтобы срубить бабла на "борьбе" с ней.
                              Ответить
                              • Ну это очень смелые заявления про смерти от прививок. При том, что заболело несколько десятков тысяч человек (из которых какой-то значимый процент НЕ умер врезультате прививки) то, что умерло четыре человека (а могло умереть может и сотни четыре) - это отнюдь не "довольно большое число", это абсолютно за гранью значимости, тем более на фоне позитивных эффектов.
                                Внезапно больше человек могло умереть просто если у медсестры делающей прививку дрогнула бы рука, или что-то такое. Такие цифры ни в коем случае не позволяют делать выводы о вреде / пользе прививок.
                                Ответить
                                • >это абсолютно за гранью значимости
                                  Так что смешно от "эпидемии" умерло всего 2 человека!
                                  Почему такую же логику никто не применяет к болезням?

                                  >отнюдь не "довольно большое число"
                                  У значительно большего числа людей начались жалобы на здоровье именно после прививания.
                                  Ответить
                                  • С этим никто не спорит, спор о вреде прививок (которые на самом деле не вредные, а полезные), но если их таким образом представлять, то люди могут случайно подумать, что прививки вредят их здоровью (и, как ни странно таких есть очень много, в Штатах есть целое народное движение за то, чтобы не прививать детей).
                                    Ответить
                                    • А откуда знать чем прививают твоего ребенка? Ну ладно дети, допустим там стандартные давно проверенные вакцины от известных болезней.

                                      Однако как понять что мне за хуйню вколют в качестве (экспериментальной!) вакцины от очередной "эпидемии"?

                                      Не является ли население очередными подопытными животными, кои пропали в достаточных количествах после закрытия концлагерей?
                                      Ответить
                                      • Я более того скажу, большинство людей, чьих детей прививают, даже если им в деталях рассказать чем - все равно нихрена не поймут. Время когда результаты научных исследований были интуитивно понятны и их можно было объяснить человеку без специального образования за пару минут / одну лекцию безвозвратно остались в девятнадцатом веке.

                                        Тут нужно строить систему не на личном понимании (т.как цель не достижима и продолжает отдалятся) а на доверии, сотрудничестве и контроле.
                                        Ответить
                                        • Согласен. Это не касается старых-добрых вакцин, где просто колют убиенные тела вируса, для тренировки на них имунной системы.

                                          Но в этом и проблема.
                                          Мы ж не можем посмотреть исходные коды вакцины или отдать специалисту, которому доверяем чтоб он посмотрел её содержание и принцип работы. Поскольку обычно способ действия новых препаратов - коммерческая тайна.

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

                                          Так вот я лично знаю нескольких вполне здоровых, молодых людей, которые после добровольных и бесплатных (sic!) прививок от гриппа сильно хворали.

                                          Сам если чё, не прививаюсь лет 15 точно.
                                          Ответить
                                          • > сами разработчики даже при всей добросовестности не смогут учесть побочные эффекты
                                            Дык препараты, емнип, чуть ли не методом тыка создаются. Имеет нужный эффект? Ок, потестим выживут ли крыски. Выжили - ну и заебись.

                                            > Сам если чё, не прививаюсь лет 15 точно.
                                            Никогда не прививался от гриппа - полёт нормальный. Несколько лёгких простуд на ногах, да и всё. При том, что коллеги/одногруппники порой болели гриппом (ну если верить врачам).
                                            Ответить
                                            • А я вообще таблеток не пью. (брат)
                                              Ответить
                                            • А что если... как давно предлагал Кен Томпсон, в наш генетический код предательски заложена бомба замедленного действия, и мы все умрем, внезапно, да еще и потомкам передадим в наследство?

                                              Не прививаетесь? - Плохо. Есть такая вещь "стадный иммунитет" (herd immunity), т.е. когда изза того, что большинство окружающих не могут стать ни зараженными ни переносчиками, те, кто могли бы заразится через контакт - не заражаются. То, что вы не болеете еще не значит, что не переносите заразу к другим.

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

                                              Вот экономисты - это да, там почему-то традиционно люди не любят компьютеры. Практически вся "серьезная" современная экономика делается без моделей и экспериментов, исключительно по наитию икспертов.
                                              Ответить
                                          • > которые после добровольных и бесплатных (sic!) прививок от гриппа сильно хворали
                                            Дык любая вакцинация, емнип, всегда ударяет по организму. Именно поэтому ее не делают простуженным, беременным и т.п.
                                            Ответить
                                          • А откуда Вы знаете что Вам в еду чего-нибудь не подсыпали? Вы ведь тоже не видите исходных кодов)
                                            Ответить
              • Великолепный текст.
                Ответить
    • raka maka fo
      PHPstyler
      Ответить

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