Пытаюсь написать регистрацию и авторизацию на сайте с помощью API фейсбука. Необходимые данные от FB приходят, после я их заношу в БД и устанавливаю куки для юзера и после делаю редирект в личный кабинет, но после редиректа в адресной строке мне выводит https://mywebsite.com/#_=_
header('Content-Type: text/json; charset=utf-8');
include_once('db.php');
include_once('inc.class.php');
include 'config.php';
if (!$_GET['code']) {
exit('error code');
}
function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
$token = json_decode(file_get_contents('https://graph.facebook.com/v2.9/oauth/access_token?client_id='.ID.'&redirect_uri='.URL.'&client_secret='.SECRET.'&code='.$_GET['code']), true);
if (!$token) {
exit('error token');
}
$data = json_decode(file_get_contents('https://graph.facebook.com/v2.9/me?client_id='.ID.'&redirect_uri='.URL.'&client_secret='.SECRET.'&code='.$_GET['code'].'&access_token='.$token['access_token'].'&fields=id,name,email,gender'), true);
$email=$data['email'];
$login=$data['id'];
if (!$data) {
exit('error data');
}
if($data){
$row = ($mysqli->query("SELECT login FROM `user` WHERE login = '".$login."' LIMIT 1"));
$check = $row->fetch_assoc();
if($check){
$hash = md5(generateCode(10));
$mysqli->query("UPDATE `user` SET user_hash='".$hash."' WHERE login='".$login."'");
session_start();
setcookie("hash", $hash, time()-60*60*24);
setcookie("id", $check['id'], time()-60*60*24);
$ResHash = $mysqli->query("SELECT `user_hash` FROM `user` WHERE login='$login'");
$ArrayHash = $ResHash->fetch_assoc();
# Ставим куки
setcookie("id", $check['id'], time()+60*60*24);
setcookie("hash", $ArrayHash['user_hash'], time()+60*60*24);
$_SESSION['userid'] = $check['id'];
$_SESSION['Val_Coin'] = 'zzz';
$_SESSION['Prod_Coin'] = 'ccc';
header('Location: https://mywebsite.com/');
}
else {
$sql = $mysqli->query("INSERT INTO `user` (`login`, `mail`,`ident`,`status`) VALUES ('$login', '$email', 'FB', 'true')");
$hash = md5(generateCode(10));
$mysqli->query("UPDATE `user` SET user_hash='".$hash."' WHERE login='".$login."'");
session_start();
setcookie("hash", $hash, time()-60*60*24);
setcookie("id", $check['id'], time()-60*60*24);
$ResHash = $mysqli->query("SELECT `user_hash` FROM `user` WHERE login='$login'");
$ArrayHash = $ResHash->fetch_assoc();
# Ставим куки
setcookie("id", $check['id'], time()+60*60*24);
setcookie("hash", $ArrayHash['user_hash'], time()+60*60*24);
$_SESSION['userid'] = $check['id'];
$_SESSION['Val_Coin'] = 'zzz';
$_SESSION['Prod_Coin'] = 'ccc';
header('Location: https://mywebsite.com');
}
}
Код с кнопкой логина
<? include 'config.php' ?>
<a href="https://www.facebook.com/v2.9/dialog/oauth?client_id=<?=ID?>&redirect_uri=<?=URL?>&response_type=code&scope=public_profile,email" target="_blank">login fb</a>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Существует таблица table(timestamp, 'id', 'price')В таблице более 20 тыс
В базе есть url изображенийСкрипт должен перебирать, загружать каждое на сервер в 3 папки: основная, копия, копия меньшего размера