1. Список говнокодов пользователя dentelis

    Всего: 1

  2. 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)