Лотерея "500 копеек"

Готовые уроки IFrame + ВКонтакте API
Ответить
shrek
ЗАБАНЕН!
Сообщения: 53
Зарегистрирован: 13 ноя 2010, 15:16

Лотерея "500 копеек"

Сообщение shrek »

ЛОТЕРЕЯ "500 КОПЕЕК"
Лотерея работает только на платном хостинге!


1.Создаем index.php и в нем пишем:

Код: Выделить всё

<?/**by Pavlo Androschukid:89370428**/ header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); session_start(); $timerok = microtime(); include ("config.php");include ("func.php"  );include ("vkapi.php" ); $api_secret = "*********";     //Секретный ключ$api_id     = "***********";    //ID приложения$api        = new VKapi($api_secret, $api_id);   if (!$_SESSION['id']){    $auth_key   = $_GET['auth_key'];    $viewer_id  = $_GET['viewer_id'];    if(!md5($api_id."_".$viewer_id."_".$api_secret)==$auth_key) exit('key incorrect');    $_SESSION['id'] = $viewer_id;    header ('Location: index.php');    exit();} connect_db($mysql); $now  = mysql_fetch_assoc(mysql_query("SELECT * FROM stages ORDER BY id DESC LIMIT 1")); if ($_GET['action'] == 'buy'){    $status = $api->withdrawVotes($_SESSION['id'], 100);    if ($status['response']['transferred'] == 100)    {        $all  = mysql_fetch_assoc(mysql_query("SELECT count(*) AS count FROM tickets WHERE sid = '$now[id]'"));        $all['count']++;        mysql_query("INSERT INTO tickets (sid, uid, nid, timer) VALUES ('$now[id]', '$_SESSION[id]', '$all[count]', '".time()."')");        header ('Location: index.php');        exit();    }} $last = mysql_fetch_assoc(mysql_query("SELECT * FROM stages ORDER BY id DESC LIMIT 1,2"));$info = mysql_query("SELECT * FROM tickets WHERE sid = '$now[id]' AND uid = $_SESSION[id] ORDER BY id DESC");     while ($info1 = mysql_fetch_assoc($info))    {        $tickets[]=$info1['nid'];    }    $tickets = @implode (", ",$tickets);   $check  = mysql_fetch_assoc(mysql_query("SELECT count(*) AS count FROM tickets WHERE sid = '$now[id]'"));if ($check['count']>=100){    $rnd    = get_random_unique_indexes(37, 1, 100);    $top    = implode(",", array_slice($rnd, 0, 2  ));    $medium = implode(",", array_slice($rnd, 2, 15 ));    $down   = implode(",", array_slice($rnd, 17, 38));    $md5    = base_convert(rand(1000000,999999999), 10, 36)."_".$top."_".$medium."_".$down."_".base_convert(rand(1000000,999999999), 10, 36);     mysql_query("INSERT INTO stages (top, medium, down, md5) VALUES ('$top', '$medium', '$down', '$md5')");     $top    = mysql_query("SELECT * FROM tickets WHERE sid = '$now[id]' AND nid IN ({$now[top]})");    $medium = mysql_query("SELECT * FROM tickets WHERE sid = '$now[id]' AND nid IN ({$now[medium]})");    $down   = mysql_query("SELECT * FROM tickets WHERE sid = '$now[id]' AND nid IN ({$now[down]})");     $api->sendNotification($now['top'],    'WIN:500');    $api->sendNotification($now['medium'], 'WIN:300');    $api->sendNotification($now['down'],   'WIN:150');     while ($top1 = mysql_fetch_assoc($top))    {        $api->addVotes($top1['uid'], 500);    }     while ($medium1 = mysql_fetch_assoc($medium))    {        $api->addVotes($medium1['uid'], 300);    }     while ($down1 = mysql_fetch_assoc($down))    {        $api->addVotes($down1['uid'], 150);    }    header ('Location: index.php');    exit();    } $money = $api->getBalance  ($_SESSION['id']);$name  = $api->getProfiles ($_SESSION['id']);$first_name = iconv('utf-8', 'windows-1251',  $name['response']['user']['first_name']);$last_name  = iconv('utf-8', 'windows-1251',  $name['response']['user']['last_name'] );$money      = $money['response']['balance']; ?>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" id="vkontakte"><head><meta http-equiv="content-type" content="text/html; charset=windows-1251" /></head> <link rel="stylesheet" href="index.css" type="text/css" /><body>    <div class="body">        <div class="notice">        <h1>Лотерея "100 копеек"</h1>        </div>        <div class="header">        Общая информация        </div>         <div class="notice">            <table>                <tr>                    <td align=left>Имя: <input readOnly size=34 type=text value='<?=$first_name;?> <?=$last_name;?>'></td>                    <td align=right>Копеек: <input readOnly size=4 type=text value='<?=$money;?>'></td>                </tr>                <tr>                    <td align=left>md5: <input readOnly size=34 type=text value='<?=md5($now['md5']);?>'></td>                    <td align=right>Джек-пот: <input readOnly size=4 type=text value='<?=$last['id']*100;?>'></td>                </tr>            </table>        </div>         <div class="header">        Информация о текущем розыгрыше        </div>         <div class="notice">        <table>                <tr>                    <td align=left>Продано билетов: <input readOnly size=4 type=text value='<?=$check['count'];?>'></td>                    <td align=right>Всего билетов: <input readOnly size=4 type=text value='100'></td>                </tr>        </table>            <textarea rows=5 readOnly>Ваши билеты: <?=$tickets;?></textarea>            <a class="button" href="index.php?action=buy">Купить 1 билет за 100* копеек</a>            <font size=1>*100 копеек = 1 голос</font>        </div>         <div class="header">        Информация о прошлом розыгрыше        </div>         <div class="notice">        <table>                <tr>                    <td align=left>md5: <input readOnly size=34 type=text value='<?=md5($last['md5']);?>'></td>                    <td align=right>Строка: <input readOnly size=34 type=text onClick="this.select()" value='<?=$last['md5'];?>'></td>                </tr>        </table>        <p>        <table>                <tr>                    <td align=left><b>500 копеек:</b><p></td>                    <td align=left><?=$last['top'];?><p></td>                </tr>                <tr>                    <td align=left><b>300 копеек:</b><p></td>                    <td align=left><?=$last['medium'];?><p></td>                </tr>                <tr>                    <td align=left><b>150 копеек:</b><p></td>                    <td align=left><?=$last['down'];?><p></td>                </tr>            </table>                    </div>      </div></body><p><h1><? print (microtime()- $timerok); ?>



2. Создаем func.php и в нем пишем

Код: Выделить всё

 <?function connect_db($mysql){    mysql_connect($mysql['host'], $mysql['user'], $mysql['pass']);    mysql_select_db($mysql['db']);}  function get_random_unique_indexes($n, $rnd_from, $rnd_to){    $func_tmp = array();     if ($n > ($rnd_to - $rnd_from))        $n = $rnd_to - $rnd_from +1;     for ($i = 0; $i < $n; $i++)    {        $rnd = mt_rand($rnd_from, $rnd_to);        while(in_array($rnd, $func_tmp))            $rnd = mt_rand($rnd_from, $rnd_to);        $func_tmp[] = $rnd;    }     return $func_tmp;} ?> 


3.Создаем config.php и в нем пишем:


Код: Выделить всё

<?$mysql['host'] = "localhost"; //хост$mysql['user'] = "*********";     //пользователь БД$mysql['pass'] = "*********";     // пароль к БД$mysql['db']   = "lot";   // база   ?> 


4.Создаем VKapi.php и в нем пишем

Код: Выделить всё

 <?/**by Pavlo Androschukid:89370428**/ class VKapi{    function __construct($api_secret, $api_id)    {        $this->api_secret = $api_secret;        $this->api_id     = $api_id;    }     function getProfiles ($uids)    {        $request['fields'] = 'uid,first_name,last_name,nickname,sex,bdate(birthdate),city,country,timezone,photo,photo_medium,photo_big,has_mobile';        $request['uids']   = $uids;        $request['method'] = 'secure.getProfiles';        return $this->request($request);    }     function sendNotification ($uids, $message)    {        $request['uids']    = $uids;        $request['message'] = iconv('windows-1251', 'utf-8', $message);        $request['method']  = 'secure.sendNotification';        return $this->request($request);    }     function saveAppStatus ($uid, $status)    {        $request['uid']    = $uid;        $request['status'] = iconv('windows-1251', 'utf-8', $status);        $request['method'] = 'secure.saveAppStatus';        return $this->request($request);        }     function getAppStatus ($uid)    {        $request['uid']    = $uid;        $request['method'] = 'secure.getAppStatus';        return $this->request($request);    }     function getAppBalance ()    {        $request['method'] = 'secure.getAppBalance';        return $this->request($request);    }     function getBalance ($uid)    {        $request['uid']    = $uid;        $request['method'] = 'secure.getBalance';        return $this->request($request);    }     function addVotes ($uid, $votes)    {        $request['uid']    = $uid;        $request['votes']  = $votes;        $request['method'] = 'secure.addVotes';        return $this->request($request);    }     function withdrawVotes ($uid, $votes)    {        $request['uid']    = $uid;        $request['votes']  = $votes;        $request['method'] = 'secure.withdrawVotes';        return $this->request($request);    }     function transferVotes ($uid_from, $uid_to, $votes)    {        $request['uid_from'] = $uid_from;        $request['uid_to']   = $uid_to;        $request['votes']    = $votes;        $request['method']   = 'secure.transferVotes';        return $this->request($request);    }        function getTransactionsHistory ()    {        $request['method'] = 'secure.getTransactionsHistory';        return $this->request($request);    }     function addRating ($uid, $rate)    {        $request['uid']    = $uid;        $request['rate']   = $rate;        $request['method'] = 'secure.addRating';        return $this->request($request);    }     function setCounter ($uid, $counter)    {        $request['uid']     = $uid;        $request['counter'] = $counter;        $request['method']  = 'secure.setCounter';        return $this->request($request);    }     function request($request)    {        $request['random']    = rand(100000,999999);        $request['timestamp'] = time();        $request['format']    = 'JSON';        $request['api_id']    = $this->api_id;         ksort($request);         foreach ($request as $key=>$value) {            $str.=trim($key)."=".trim($value);        }         $request['sig'] = md5(trim($str.$this->api_secret));         $q = http_build_query($request);        $result = json_decode(file_get_contents("http://api.vkontakte.ru/api.php?".$q),TRUE);         return $result;    }} ?> 
5.Создаем таблицу lotl в БД MySql

Пишем вот ето:

Код: Выделить всё

 CREATE TABLE IF NOT EXISTS `tickets` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `sid` int(11) NOT NULL,  `nid` int(11) NOT NULL,  `uid` int(11) NOT NULL,  `timer` int(30) DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `sid` (`sid`)) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;  


Вот и все...
Исходник:

http://depositfiles.com/ru/files/m3hade2xs?redirect
aydar
Сообщения: 57
Зарегистрирован: 09 сен 2010, 18:22

Re: Лотерея "500 копеек"

Сообщение aydar »

И зачем она, когда в нете находится....? и класс старый :|
Ответить