За последние 24 часа нас посетили 20126 программистов и 1078 роботов. Сейчас ищут 722 программиста ...

Помогите!!!

Тема в разделе "PHP и базы данных", создана пользователем Den365, 3 сен 2019.

  1. Den365

    Den365 Новичок

    С нами с:
    3 сен 2019
    Сообщения:
    3
    Симпатии:
    0
    Нет авторизации.
    Код
    Код (Text):
    1. <?php
    2.  
    3. if (!empty($_SESSION['user'])) {
    4.     header("Location: /account");
    5. }
    6.  
    7. $time = time();
    8.  
    9. $data = array();
    10.  
    11. $config = new config();
    12.  
    13. $url = 'http://oauth.vk.com/authorize';
    14.  
    15. $ip = func::clear($_SERVER['REMOTE_ADDR']);
    16. $meta =func::clear($_SERVER['HTTP_USER_AGENT']);
    17.  
    18. $params = array(
    19.     'client_id' => $config->client_id,
    20.     'redirect_uri' => $config->redirect_uri,
    21.     'scope' => 'email,photos',
    22.     'response_type' => 'code',
    23.      'v' => '5.0'
    24. );
    25.  
    26.  
    27. $data['auth'] = $url . "?" . urldecode(http_build_query($params));
    28.  
    29. if (isset($_GET['code'])) {
    30.     $result = false;
    31.  
    32.     $params = array(
    33.         'client_id' => $config->client_id,
    34.         'client_secret' => $config->client_secret,
    35.         'code' => $_GET['code'],
    36.         'redirect_uri' => $config->redirect_uri
    37.      
    38.     );
    39.  
    40.     $token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);
    41.  
    42.     if (isset($token['access_token'])) {
    43.         $params = array(
    44.             'user_ids' => $token['user_id'],
    45.             'fields' => 'user_id,first_name,last_name,photo_100',
    46.             'access_token' => $token['access_token'],
    47.              'v' => '5.0'
    48.         );
    49.  
    50.         $userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
    51.         if (isset($userInfo['response'][0]['user_id'])) {
    52.             $userInfo = $userInfo['response'][0];
    53.             $result = true;
    54.         }
    55.     }
    56.  
    57.     if ($result) {
    58.  
    59.         $user_id = $userInfo['user_id'];
    60.         $email = $token["email"];
    61.         $first_name = $userInfo['first_name'];
    62.         $last_name = $userInfo['last_name'];
    63.         $screen_name = $first_name . ' ' . $last_name;
    64.         $photo_100 = $userInfo['photo_100'];
    65.  
    66.        $dadd = time();
    67.        $db->Query("SELECT * FROM referalpay WHERE referalpay.id AND date_del >= $dadd ORDER BY id ");
    68.         $refpay1 = $db->FetchArray();
    69.         $refer = $refpay1['user_id'];
    70.          # Случайная очистка устаревших записей
    71.           $db->Query("DELETE FROM referalpay WHERE date_del < '$dadd'");
    72.  
    73.         $ref_1 = $refer;
    74.         $ref_2 = 0;
    75.         $ref_3 = 0;
    76.  
    77.         $db->Query("SELECT * FROM users WHERE uid = '{$uid}'");
    78.         $user_data = $db->FetchArray();
    79.  
    80.         /*
    81. if($user_data['id'] != 1){
    82.  
    83.         $db->Query("SELECT COUNT(*) FROM users WHERE ip = '{$ip}'");
    84.         if (intval($db->FetchRow()) > 1){
    85.  
    86.             $db->Query("SELECT * FROM users WHERE ip = '{$ip}'");
    87.             $ban_data = $db->FetchAll();
    88.  
    89.             foreach($ban_data as $ban){
    90.                 if($user_data['id'] != $ban['id']){
    91.                     $db->Query("UPDATE users SET ip = '0' WHERE id = '{$ban['id']}'");
    92.                 }
    93.                 $db->Query("UPDATE users SET ban = '2' WHERE id = '{$ban['id']}'");
    94.             }
    95.         }
    96.  
    97.         $user_ip = $user_data['ip'];
    98.  
    99.         $db->Query("SELECT COUNT(*) FROM users WHERE ip = '{$user_ip}'");
    100.         if (intval($db->FetchRow()) > 1){
    101.             $db->Query("UPDATE users SET ban = '2' WHERE id = '{$user_data['id']}'");
    102.         }
    103.  
    104.         $db->Query("SELECT * FROM users WHERE uid = '{$uid}'");
    105.         $user_data = $db->FetchArray();
    106.  
    107.         }
    108. */
    109.  
    110.         if($user_data['ban'] != '2') {
    111.             if (isset($_COOKIE['referer']) && !empty($_COOKIE['referer'])) {
    112.                 $ref = func::clear($_COOKIE['referer'], 'int');
    113.  
    114.                 $db->Query("SELECT * FROM users WHERE id = '{$ref}'");
    115.                 if ($db->NumRows() > 0) {
    116.                     $db->Query("SELECT * FROM users_ref WHERE user_id = '{$ref}'");
    117.                     $ref_dat = $db->FetchArray();
    118.                     $ref_1 = $ref;
    119.                     $ref_2 = $ref_dat['ref_1'];
    120.                     $ref_3 = $ref_dat['ref_2'];
    121.                     $db->Query("UPDATE users SET refs = refs + 1 WHERE id = '{$ref_1}'");
    122.                 }
    123.             }
    124.  
    125.             $db->Query("SELECT id, uid FROM users WHERE uid = {$uid}");
    126.             if ($db->NumRows() > 0) {
    127.                 $user = $db->FetchArray();
    128.                 $id = $user['id'];
    129.                 $_SESSION['user'] = $id;
    130.                 $db->Query("INSERT INTO auth (user_id,ip,time,meta) VALUES ('{$id}','{$ip}','{$time}','{$meta}')");
    131.                 $db->Query("UPDATE users SET email = '{$email}', screen_name = '{$screen_name}', photo_100 = '{$photo_100}', ip = '{$ip}' WHERE id = '{$id}'");
    132.                 header('location: /account');
    133.             } else {
    134.                 if (isset($_COOKIE['httpref'])) {
    135.                     $httpref = func::clear($_COOKIE['httpref']);
    136.                 } else $httpref = '0';
    137.  
    138.                 $db->Query("INSERT INTO users (user_ids,email,screen_name,photo_100,ip,date_reg)
    139.             VALUES ('{$user_id}','{$email}','{$screen_name}','{$photo_100}','{$ip}','{$time}')");
    140.                 $id = $db->LastInsert();
    141.                 $db->Query("INSERT INTO users_conf (user_id,balance,httpref) VALUES ('{$id}','2','{$httpref}')");
    142.                 $db->Query("INSERT INTO users_ref (user_id,ref_1,ref_2,ref_3,to_ref_1,to_ref_2,to_ref_3)
    143.             VALUES ('{$id}','{$ref_1}','{$ref_2}','{$ref_3}','0','0','0')");
    144.                 $_SESSION['user'] = $id;
    145.  
    146.                 $db->Query("INSERT INTO auth (user_id,ip,time,meta) VALUES ('{$id}','{$ip}','{$time}','{$meta}')");
    147.  
    148.                 header('location: /account');
    149.             }
    150.         } else {
    151.             die(header('location: /ban'));
    152.         }
    153.     }
    154. }
    155.  
    156. new gen('signin', $data);
    [ ссылка выпилена наxуй ]
     
    #1 Den365, 3 сен 2019
    Последнее редактирование модератором: 3 сен 2019
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Это ты писал?
     
  3. Den365

    Den365 Новичок

    С нами с:
    3 сен 2019
    Сообщения:
    3
    Симпатии:
    0
    Нет
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Тогда одно из двух: спроси того, чей код изучаешь или напиши свой вариант. Так это работает.
    --- Добавлено ---
    начни с понятия что такое авторизация вообще:
    https://php.ru/forum/threads/avtorizacija-teorija.53234/
     
  5. Den365

    Den365 Новичок

    С нами с:
    3 сен 2019
    Сообщения:
    3
    Симпатии:
    0
    Доработал но не работает? Поставил место 3 версии 5 версию но все равно не работает? Как быть?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Я не знаю как отвечать на такие вопросы, сорри. Надо как-то поконкретнее описывать ошибку и свои действия.
    --- Добавлено ---
    "Вот вам простыня кода, она не работает." Серьёзно?