Авторизация через VK получение почты

Печать RSS
356

Автор
Чатланин
0
Есть такой код - тут все в порядке, адрес почты получаем в случае если пользователь разрешает ее отправить.
<?php
$client_id = // ID приложения
$client_secret = // Защищённый ключ
$redirect_uri = // Адрес сайта

if (isset($_GET['code'])) {
    $result = false;
    $params = array(
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'code' => $_GET['code'],
        'redirect_uri' => $redirect_uri
    );

    $token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);

    if (isset($token['access_token'])) {
        $params = array(
            'user_id'      => $token['user_id'],
            'email'        => $token['email'],
            'fields'       => 'uid,first_name,bdate,photo_200_orig,sex',
            'access_token' => $token['access_token']
        );
			$_SESSION['email'] = $token['email'];

        $userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
        if (isset($userInfo['response'][0]['uid'])) {
            $userInfo = $userInfo['response'][0];
            $result = true;
		} 
	}
    if ($result) {
echo $userInfo['uid'];
echo $userInfo['first_name'];
echo $userInfo['photo_200_orig'];
echo $userInfo['sex'];
echo $_SESSION['email'];
	}
}
?>
Если же запретили отправлять почту, в строчке
<?php
'email'        => $token['email'],
?>
получается ошибка. Notice: Undefined index: email
Как правильно сделать, чтобы при запрете отправки почты, пользователя перекидывало на главную сайта?

Пацак
0
дык... if(empty($token['email'])) header('Location: /');
после получения данных
Автор
Чатланин
0
anonymouse (29 Апреля 2016 / 17:08)
дык... if(empty($token['email'])) header('Location: /');
после получения данных
Сразу не дошло. Спасибо за подсказку.
<?php 
    if (isset($token['access_token']) && isset($token['email'])) {

    } else {
				redirect('/index.php');
    }
?>
Делаю для ротора, функция redirect('/index.php');

Пацак
0
Я бы не стал делать isset, ибо значения в виде ноля в данном случае не очень устраивают, и не относятся к легитимным
Автор
Чатланин
0
4. anonymouse, хорошо, понял. Спасибо!
Автор
Чатланин
0
anonymouse (1 Мая 2016 / 09:07)
Я бы не стал делать isset, ибо значения в виде ноля в данном случае не очень устраивают, и не относятся к легитимным
Результат с empty полностью наоборот. Если запретить отправку почты, то пользователь входит и почта не приходит, если же разрешить - то тут получается ошибка. В общем isset работает правильно и так как мне нужно..
Автор
Чатланин
0
А вот все прописал !empty теперь работает )
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск