加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 一些未插入mysql数据库的Facebook用户的数据

发布时间:2020-12-13 16:18:18 所属栏目:PHP教程 来源:网络整理
导读:关于从授权我的应用程序并使用它的一些Facebook用户那里获取数据(通常是顺便说一句),我有一个奇怪但非常严重的问题. 到目前为止,大约有3000个用户使用过该应用程序,但只有600个用户在用户表中显示.怎么可能呢?我无法找到新旧用户之间的联系 – 对于一些用户
关于从授权我的应用程序并使用它的一些Facebook用户那里获取数据(通常是顺便说一句),我有一个奇怪但非常严重的问题.

到目前为止,大约有3000个用户使用过该应用程序,但只有600个用户在用户表中显示.怎么可能呢?我无法找到新旧用户之间的联系 – 对于一些用户而言,它可以完美地工作,对于其他用户而言根本不起作用.

这是完整的,但出于安全考虑,审查代码:

<?php
 require 'facebook.php';
 include 'config.php';
 session_start();

 $app_id = 'id';
 $app_secret = 'secret';
 $app_namespace = 'namespace';
 $app_url = 'https://apps.facebook.com/' . $app_namespace . '/';
 $scope = 'email,publish_actions';

//初始化Facebook SDK

$facebook = new Facebook(array(
    'appId'  => $app_id,'secret' => $app_secret,'cookie' => true
    ));

//获取当前用户

$user = $facebook->getUser();

//如果用户尚未安装应用程序,请将其重定向到Auth Dialog

if (!$user) {
    $loginUrl = $facebook->getLoginUrl(array(
    'scope' => $scope,'redirect_uri' => $app_url,));

print('<script> top.location.href='' . $loginUrl . ''</script>');
 }

 else if ($user) {
    try {

//继续了解我们已经有一个已经过身份验证的登录用户.

$fbuid = $facebook->getUser();
    $user_profile = $facebook->api('/me');



} catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
}
 }
else{
header('Location: index.php');

 }
 $queryUserExists = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook'AND oauth_uid = " . $user_profile['id']);
 $num=mysql_numrows($queryUserExists);

//如果没有,请将其添加到数据库中

if ($num == 0) {
$query = mysql_query("INSERT INTO users (oauth_uid,oauth_provider,username,first_name,last_name,email,pic_square,login_date,dailytokens) 
        VALUES ({$user_profile['id']},'facebook','{$user_profile['name']}','{$user_profile['first_name']}','{$user_profile['last_name']}','{$user_profile['email']}','".$photolink."',CURDATE(),1)");
$query = mysql_query("SELECT * FROM users WHERE oauth_uid = " . mysql_insert_id());
$result = mysql_fetch_array($query); 
 }
     else
     {
    $DateLastLogin=mysql_result($queryUserExists,"login_date");
    $myDate = date('Y-m-d');

    $CompLastDate = strtotime($DateLastLogin);
    $CompMyDate = strtotime($myDate);

if($CompLastDate < $CompMyDate){
    $updateDailyToken = "Update users set login_date=CURDATE(),dailytokens = dailytokens + 1 where oauth_uid =" . $user_profile['id'];
    $updateToken= mysql_query($updateDailyToken) or die(mysql_error());
}
 }
 $query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid = " . $user_profile['id']);

 $_SESSION['userid']=$user_profile['id'];

//根据当前用户状态,将需要登录或注销URL.

if ($user) {
    $paramsout = array('next'=>'http://facebook.com');
    $logoutUrl = $facebook->getLogoutUrl($paramsout);
     }
     ?>

解决方法

这是你的问题

$query = mysql_query("INSERT INTO users (oauth_uid,1)");

它应该是

$query = mysql_query("INSERT INTO users (oauth_uid,dailytokens) 
        VALUES ('{$user_profile['id']}','{$photolink}',1)");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读