Ejemplo n.º 1
0
 public function userLoginWidget()
 {
     global $vkOauth_id, $vkOauth_key, $siteName, $uid, $first_name, $last_name, $photo, $photo_rec, $hash, $vkUser, $debugLog, $debugMode;
     //global $imagePath, $valid_user;
     $tempDebugMode = $debugMode;
     // Сохранение глобального значения во временную переменную
     $debugMode = true;
     // Внутренний вкл/выкл. режима отладки
     static $funcName = 'VkApi::userLoginWidget';
     // Название функции для логов
     Debug::Addlog($funcName);
     if ($_SESSION['vkUser']) {
         // Пользователь авторизован в сессии
         Debug::Addlog($funcName, 'User is registered and authorized.');
         $debugMode = $tempDebugMode;
         // Возвращение значения глобальной переменной
         return true;
     }
     if ($_COOKIE['uid'] && $_COOKIE['hash']) {
         // Данные пользователя есть в куках
         Debug::Addlog($funcName, 'User is registered in COOKIES. Checking VK reg data.');
         $uid = $_COOKIE['uid'];
         $hash = $_COOKIE['hash'];
         $userGet = self::api('users.get', "user_ids={$uid}&fields=photo_50,photo_200");
         $first_name = $userGet->response[0]->first_name;
         $last_name = $userGet->response[0]->last_name;
         $photo = $userGet->response[0]->photo_200;
         $photo_rec = $userGet->response[0]->photo_50;
         //Debug::CheckCode($photo);
     }
     if ($uid && $first_name && $last_name && $photo && $photo_rec && $hash) {
         // Получены регистрационные данные Вконтакте
         Debug::Addlog($funcName, 'VK reg data recieved.');
         Debug::Addlog($funcName, "Data check:");
         Debug::Addlog($funcName, "uid: {$uid}");
         Debug::Addlog($funcName, "first_name: {$first_name}");
         Debug::Addlog($funcName, "last_name: {$last_name}");
         Debug::Addlog($funcName, "photo: {$photo}");
         Debug::Addlog($funcName, "photo_rec: {$photo_rec}");
         Debug::Addlog($funcName, "hash: {$hash}");
         //$findUser = mysql_query("SELECT * FROM users WHERE uid='$uid'"); // Ищем пользователя в базе
         $findUser = MySQL::Query("SELECT * FROM users WHERE uid='{$uid}'");
         if ($findUser === false) {
             // Не удалось выполнить запрос к MySQL
             Debug::Addlog($funcName, '!findUser » MySQL connection failure. Stopping function.');
             $debugMode = $tempDebugMode;
             // Возвращение значения глобальной переменной
             return false;
         } else {
             // Запрос к MySQL выполнен успешно
             if ($findUser === NULL) {
                 // Регистрация нового пользователя.
                 Debug::Addlog($funcName, 'Registering new user.');
                 $addUser = MySQL::Query("INSERT INTO\n\t\t\t\t\t\t\t\t \t\t\t  users (uid, first_name, last_name, photo, photo_rec, hash, create_time) \n\t\t\t\t\t\t\t\t\t\t\t  values ('{$uid}', '{$first_name}', '{$last_name}', '{$photo}', '{$photo_rec}', '{$hash}', '" . time() . "')");
                 if (!$addUser) {
                     // Не удалось выполнить запрос к MySQL
                     Debug::Addlog($funcName, '!addUser. MySQL connection failure. Stopping function.');
                     $debugMode = $tempDebugMode;
                     // Возвращение значения глобальной переменной
                     return false;
                 } else {
                     // Пользователь добавлен в MySQL
                     Debug::Addlog($funcName, 'User has been added into MySQL. Second query.');
                     $findUser = MySQL::Query("SELECT * FROM users WHERE uid='{$uid}' and hash='{$hash}'");
                     // Повторный поиск в MySQL
                     $vkUser = $findUser[0];
                     //$findUser = mysql_query("SELECT * FROM users WHERE uid='$uid' and hash='$hash'");
                     //$vkUser  = mysql_fetch_object($findUser);
                     //Debug::Addlog($funcName,var_export($findUser,TRUE));
                     Debug::Addlog($funcName, 'User data:');
                     Debug::Addlog($funcName, var_export($vkUser, TRUE));
                     $userRegister = true;
                     // Маркер для блока регистрации пользователя (см. ниже)
                 }
             } elseif (count($findUser) > 0) {
                 // Пользователь найден в базе
                 Debug::Addlog($funcName, 'User is already registered in MySQL. Updating data.');
                 // Обновляем данные пользователя в базе
                 $updateUser = MySQL::Query("UPDATE users \n\t\t\t\t\t\t\t\t\t\t\t\t SET \tfirst_name='{$first_name}', \n\t\t\t\t\t\t\t\t\t\t\t\t \t \tlast_name='{$last_name}', \n\t\t\t\t\t\t\t\t\t\t\t\t\t \tphoto='{$photo}', \n\t\t\t\t\t\t\t\t\t\t\t\t\t \tphoto_rec='{$photo_rec}', \n\t\t\t\t\t\t\t\t\t\t\t\t\t \thash='{$hash}' \n\t\t\t\t\t\t\t\t\t\t\t\t WHERE \tuid='{$uid}'");
                 if (!$updateUser) {
                     // Обновление данных не удалось
                     Debug::Addlog($funcName, 'Failed updating user data in MySQL. Stopping function.');
                     $debugMode = $tempDebugMode;
                     // Возвращение значения глобальной переменной
                     return false;
                 } else {
                     // Данные пользователя обновились успешно, продолжение аутентификации
                     Debug::Addlog($funcName, 'User data has been successfully updated in MySQL.');
                     $vkUser = $findUser[0];
                     $userRegister = true;
                     // Маркер для блока регистрации пользователя (см. ниже)
                 }
             }
         }
     }
     if ($userRegister) {
         // Блок регистрации пользователя
         // Регистрируем пользователя в сессии
         Debug::Addlog($funcName, 'Registering user in SESSION.');
         unset($_SESSION['vkUser']);
         unset($_SESSION['uid']);
         unset($_SESSION['first_name']);
         unset($_SESSION['last_name']);
         unset($_SESSION['photo']);
         unset($_SESSION['photo_rec']);
         $_SESSION['vkUser'] = $vkUser;
         $_SESSION['uid'] = $uid;
         $_SESSION['first_name'] = $first_name;
         $_SESSION['last_name'] = $last_name;
         $_SESSION['photo'] = $photo;
         $_SESSION['photo_rec'] = $photo_rec;
         // Регистрируем пользователя в куках на 10 лет
         Debug::Addlog($funcName, 'Registering user in COOKIES.');
         setcookie("uid", $uid, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
         setcookie("hash", $hash, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
         Debug::Addlog($funcName, 'User is registered and authorized.');
         Debug::Addlog($funcName, 'Refreshing page...');
         $debugMode = $tempDebugMode;
         // Возвращение переменной глобального значения
         http_redirect($_SERVER['SCRIPT_URI']);
     }
     if (!$_SESSION['vkUser']) {
         // Пользователь НЕ авторизован в сессии. Загружаем страницу авторизации.
         Debug::Addlog($funcName, 'Unregistered user. Loading login page.');
         $debugMode = $tempDebugMode;
         // Возвращение значения глобальной переменной
         require_once path_root() . 'vkapi/vkauth/login.php';
         return false;
     }
 }
Ejemplo n.º 2
0
 public function userLoginVK($uid = NULL, $hash = NULL, $logging = false)
 {
     global $START_TIME, $imagePath;
     if ($logging) {
         $log[] = debug('logtime', true) . ". MySQL userLoginVK: Начало работы функции.<br>";
     }
     global $vkOauth_id, $vkApi_id, $siteName;
     global $uid, $first_name, $last_name, $photo, $photo_rec, $hash, $smmUser, $User, $access_token, $user_id;
     //global $valid_user;
     if (self::connect()) {
         if ($logging) {
             $log[] = debug('logtime', true) . ". MySQL userLoginVK: MySQL работает<br>";
         }
         if ($uid && $hash) {
             if ($logging) {
                 $log[] = debug('logtime', true) . ". MySQL userLoginVK: Есть рег.данные<br>";
                 $log[] = "<br>" . debug('logtime', true) . ". MySQL userLoginVK: Проверка данных 1:<br>{$uid}<br>{$first_name}<br>{$last_name}<br>{$photo}<br>{$photo_rec}<br>{$hash}<br><br>";
             }
             $findUser = mysql_query("SELECT * FROM users WHERE uid='{$uid}'");
             if (!$findUser) {
                 if ($logging) {
                     $log[] = debug('logtime', true) . ". MySQL userLoginVK: ОШИБКА. Невозможно подключиться к базе. Пожалуйста попробуйте позже.<br>";
                     $log[] = debug('logtime', true) . ". MySQL userLoginVK: Работа функции завершена с ошибкой.<br>";
                     foreach ($log as $logstring) {
                         print $logstring;
                     }
                 }
                 return false;
             } else {
                 if (mysql_num_rows($findUser) == 0) {
                     if ($logging) {
                         $log[] = debug('logtime', true) . ". MySQL userLoginVK: Пользователь не зарегистрирован в базе. Добавляем пользователя<br>";
                         $log[] = "<br>" . debug('logtime', true) . ". MySQL userLoginVK: Проверка данных 2:<br>{$uid}<br>{$first_name}<br>{$last_name}<br>{$photo}<br>{$photo_rec}<br>{$hash}<br>";
                     }
                     $addUser = mysql_query("INSERT INTO\n\t\t\t\t\t\t\t\t\t users (uid, first_name, last_name, photo, photo_rec, hash, create_time) \n\t\t\t\t\t\t\t\t\t values ('{$uid}', '{$first_name}', '{$last_name}', '{$photo}', '{$photo_rec}', '{$hash}',  '" . time() . "')");
                     if ($logging) {
                         $log[] = var_export($addUser, TRUE);
                     }
                     if (!$addUser) {
                         if ($logging) {
                             $log[] = debug('logtime', true) . ". MySQL userLoginVK: ОШИБКА. Невозможно подключиться к базе. Пожалуйста попробуйте позже.<br>";
                             $log[] = debug('logtime', true) . ". MySQL userLoginVK: Работа функции завершена с ошибкой.<br>";
                             foreach ($log as $logstring) {
                                 print $logstring;
                             }
                         }
                         return false;
                     } else {
                         if ($logging) {
                             $log[] = debug('logtime', true) . ". MySQL userLoginVK: Пользователь добавлен. Делаем повторный запрос<br>";
                         }
                         $findUser = mysql_query("SELECT * FROM users WHERE uid='{$uid}' and hash='{$hash}'");
                         $smmUser = mysql_fetch_array($findUser);
                         if ($logging) {
                             $log[] = var_export($findUser, TRUE);
                             $log[] = debug('logtime', true) . ". MySQL userLoginVK: Данные пользователя:<br>";
                             $log[] = var_export($smmUser, TRUE);
                             $log[] = "<br><br>" . debug('logtime', true) . ". MySQL userLoginVK: Регистрируем пользователя в сессии.<br>";
                         }
                         $User = $smmUser['id'];
                         $user_id = $smmUser['uid'];
                         $access_token = $smmUser['access_token'];
                         session_unregister('User');
                         session_unregister('user_id');
                         session_unregister('access_token');
                         session_unregister('smmUser');
                         session_register('User');
                         session_register('user_id');
                         session_register('access_token');
                         session_register('smmUser');
                         if ($logging) {
                             foreach ($log as $logstring) {
                                 print $logstring;
                             }
                         }
                         return true;
                     }
                 } elseif (mysql_num_rows($findUser) > 0) {
                     if ($logging) {
                         $log[] = debug('logtime', true) . ". MySQL userLoginVK: Пользователь найден в базе<br>";
                     }
                     $smmUser = mysql_fetch_array($findUser);
                     if ($logging) {
                         $log[] = debug('logtime', true) . ". MySQL userLoginVK: Данные пользователя:<br>";
                         $log[] = var_export($smmUser, TRUE);
                         $log[] = "<br><br>" . debug('logtime', true) . ". MySQL userLoginVK: Регистрируем пользователя в сессии.<br>";
                     }
                     $User = $smmUser['id'];
                     $user_id = $smmUser['uid'];
                     $access_token = $smmUser['access_token'];
                     session_unregister('User');
                     session_unregister('user_id');
                     session_unregister('access_token');
                     session_unregister('smmUser');
                     session_register('User');
                     session_register('user_id');
                     session_register('access_token');
                     session_register('smmUser');
                     if ($logging) {
                         $log[] = '──────────────────────────────<br>' . debug('logtime', true) . 'MySQL userLoginVK: Данные на выходе:<br>$User: '******'<br>$smmUser: '******'logtime', true) . ". MySQL userLoginVK: Рег.данные не введены.<br>";
         }
         if (!session_is_registered('User')) {
             require_once path_root() . 'vkapi/vkauth/login.php';
             if ($logging) {
                 $log[] = debug('logtime', true) . ". MySQL userLoginVK: Пользователь не авторизован. Включаем форму авторизации.<br>";
                 foreach ($log as $logstring) {
                     print $logstring;
                 }
             }
             return false;
         } else {
             if ($logging) {
                 $log[] = debug('logtime', true) . ". MySQL userLoginVK: Пользователь авторизован.<br>";
                 foreach ($log as $logstring) {
                     print $logstring;
                 }
             }
             return true;
         }
     } else {
         if ($logging) {
             $log[] = debug('logtime', true) . ". MySQL userLoginVK: ОШИБКА. Невозможно подключиться к базе. Пожалуйста попробуйте позже.<br>";
             $log[] = debug('logtime', true) . ". MySQL userLoginVK: Работа функции завершена с ошибкой.<br>";
             foreach ($log as $logstring) {
                 print $logstring;
             }
         }
         return false;
     }
 }
Ejemplo n.º 3
0
    public function ShowError404()
    {
        ?>
		<div class="panel wrapper">
			<div class="row m-n">
				<div class="text-center">
					<div class="text-center m-b-lg">
						<h1 class="h1-404 text-white animated bounceInDown">404</h1>
						<h3 class="m-t-sm h3-404">Страница не существует</h3>
					</div>
					<div class="list-group bg-white m-404">
						<a href="<?php 
        echo path_root();
        ?>
index.php" class="list-group-item">
							<i class="fa fa-fw fa-home text-muted"></i> На главную
						</a>
						<a href="javascript:history.go(-1)" mce_href="javascript:history.go(-1)" class="list-group-item">
							<i class="fa fa-fw fa-reply text-muted"></i> Назад
						</a>
					</div>
				</div>
			</div>
		</div>
		<?php 
        // Вывод данных отладки
        Debug::Printlog();
        Debug::Showglobals();
        Html::Footer();
        exit;
    }