php - 使用 Facebook google API 响应登录时未分配给 SESSION
问题描述
我在使用 Facebook 和 Google API 登录时遇到了一些问题。我是 API 集成的新手,这就是为什么我不理解这个问题。
在索引页面上,我有单击 API 上的登录按钮被调用并成功登录,我想将登录人的姓名传递给 SESSION,但是当我单击登录时一切都做得很好,但名称没有分配给 SESSION,但我点击了在按钮上两次它完美地工作。我想要它单击一下。
在单击的索引页面上,我从 API 获取响应并将其发送到另一个页面 ajax2.php(对于 Facebook)这个页面只是检查用户是否存在,如果没有将该用户输入到数据库,并且在这个页面上这个用户名分配到会话。并再次在此页眉上设置为索引页。
但是当它出现在索引页面上时,它没有获得 SESSION 值。
代码:
<script>
function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
var user_name_facebook = response.name;
//console.log('user : ' + fname);
//console.log('User ID : ' + response.id);
var user_id_facebook = response.id;
//console.log('user id : ' + fid);
if (user_name_facebook && user_id_facebook) {
var i;
<?PHP if(isset($a)) {
}
else {
//console.log('for loop exicuted' + i);
echo "window.location.href = \"https://example.com/ajax2.php?
user_name_facebook=\" + user_name_facebook +
\"&user_id_facebook=\" +
user_id_facebook;";
}
?>
}
//console.log('facebook user:' + response.name);
//document.getElementById('status').innerHTML =
//'Thanks for logging in, ' + response.name + '!';
});
}
</script>
ajax2.php
<?php
header("Cache-Control: no-cache");
header("Pragma: no-cache");
$user_name_facebook=$_GET['user_name_facebook'];
$user_id_facebook=$_GET['user_id_facebook'];
$conn = mysqli_connect("","","","");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
//echo "connect";
}
$sql = mysqli_query($conn, "SELECT * from mytable WHERE user_id_facebook =
'$user_id_facebook'");
if (mysqli_num_rows($sql) > 0) {
echo 'Username exist....';
}
else
{
$query=mysqli_query($conn,"INSERT INTO mytable SET
user_name_google='".$user_name_facebook."',
user_mail_google=' ',
user_name_facebook=' ',
user_id_facebook='".$user_id_facebook."',
key_val=0,
user_coins=5");
mysqli_close($conn);
}
header('Location: https://example.com/index_login.php');
?>
解决方案
推荐阅读
- python - 忽略输入或延迟下一个输出
- html - 我在调整图像大小以始终适合我的浏览器屏幕时遇到问题
- c++ - 如果在 `std::move`d 定义后使用 QString?
- r - 在R中将矩形像素转换为方形像素
- c# - 如何在选择第一个下拉列表时填充第二个下拉列表
- javascript - 如果您无权访问其代码,如何停止父元素的事件传播?
- amazon-web-services - 如何修复 S3 存储桶上的访问被拒绝?
- curl - IBM Cloud - 如何使用 curl POST 在 Watson TTS 中调整语速?
- android - 更改名称后未安装 Flutter App
- r - R 最佳实践:对于 CRAN,您应该优化还是保留基本方法