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

Печать / RSS
0
1. Андрей 29.04.2016 / 16:57
Чатланин
Есть такой код - тут все в порядке, адрес почты получаем в случае если пользователь разрешает ее отправить.
<?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
2. /7o/loTeH4I1k 29.04.2016 / 17:08
Пацак
дык... if(empty($token['email'])) header('Location: /');
после получения данных
0
3. Андрей 29.04.2016 / 17:34
Чатланин
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
4. /7o/loTeH4I1k 01.05.2016 / 09:07
Пацак
Я бы не стал делать isset, ибо значения в виде ноля в данном случае не очень устраивают, и не относятся к легитимным
0
5. Андрей 01.05.2016 / 09:19
Чатланин
4. anonymouse, хорошо, понял. Спасибо!
0
6. Андрей 01.05.2016 / 20:38
Чатланин
anonymouse (1 Мая 2016 / 09:07)
Я бы не стал делать isset, ибо значения в виде ноля в данном случае не очень устраивают, и не относятся к легитимным

Результат с empty полностью наоборот. Если запретить отправку почты, то пользователь входит и почта не приходит, если же разрешить - то тут получается ошибка. В общем isset работает правильно и так как мне нужно..
0
7. Андрей 01.05.2016 / 20:52
Чатланин
А вот все прописал !empty теперь работает )
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск