php - 同步两个表 user_id 并感谢使用 twitter oauth 向用户确认

标签 php mysql twitter oauth twitter-oauth

所以这是我昨天提出的问题的后续问题,已解决。

但现在我有另一个问题。我一直在尝试从链接的同一数据库中的 2 个不同表中获取 user_id,因此当用户对他们的推特进行身份验证时,它会显示一个内页,上面写着*你已经链接了你的推特! “用户名”所以所有页面的 2 个表格布局和代码如下:

users 表:此表用于 twitter oauth

ID, user_id, oauth_provider, oauth_uid, username, fname, lname, locale, oauth_token, oauth_secret, picture, created, modified

积分表:此表用于积分和 youtube 内容,(此表 user_id 已从我的 phpBB 数据库中的 phpbb_users 表获取数据。)

user_id、用户名、yt_channelTitle、积分、user_email、access_token、refresh_token、channel_id、上传、dailyVotes

twitter oauth functions.php 文件:

function checkUsers($user_id,$oauth_provider,$oauth_uid,$username,$fname,$lname,$locale,$oauth_token,$oauth_secret,$profile_image_url){
    $prevQuery = mysqli_query($this->connect,"SELECT * FROM $this->tableName WHERE oauth_provider = '".$oauth_provider."' AND oauth_uid = '".$oauth_uid."'") or die(mysqli_error($this->connect));
    if(mysqli_num_rows($prevQuery) > 0){
        $update = mysqli_query($this->connect,"UPDATE $this->tableName SET  oauth_token = '".$oauth_token."', oauth_secret = '".$oauth_secret."', modified = '".date("Y-m-d H:i:s")."', user_id = '".$user_id."' WHERE oauth_provider = '".$oauth_provider."' AND oauth_uid = '".$oauth_uid."' AND user_id = '".$user_id."' ") or die(mysqli_error($this->connect));
    }else{
        $insert = mysqli_query($this->connect,"INSERT INTO $this->tableName SET oauth_provider = '".$oauth_provider."', oauth_uid = '".$oauth_uid."', username = '".$username."', fname = '".$fname."', lname = '".$lname."', locale = '".$locale."', oauth_token = '".$oauth_token."', oauth_secret = '".$oauth_secret."', picture = '".$profile_image_url."', created = '".date("Y-m-d H:i:s")."', modified = '".date("Y-m-d H:i:s")."', user_id = '".$user_id."' ") or die(mysqli_error($this->connect));
    }

    $query = mysqli_query($this->connect,"SELECT * FROM $this->tableName WHERE oauth_provider = '".$oauth_provider."' AND oauth_uid = '".$oauth_uid."'") or die(mysqli_error($this->connect));
    $result = mysqli_fetch_array($query);
    return $result;
}

twitteroauth process.php 文件:

    include_once("../inc/header_session.php");
#$user_id = getUserInfo($id,$user->data['user_id']);
$user_id = intval($user->data['user_id']);

if($connection->http_code == '200' && $user_id != 1)
{
    //Redirect user to twitter
    $_SESSION['status'] = 'verified';
    $_SESSION['request_vars'] = $access_token;

    //Insert user into the database
    $user_info = $connection->get('account/verify_credentials'); 
    $user_id = $user->data['user_id'];
    $name = explode(" ",$user_info->name);
    $fname = isset($name[0])?$name[0]:'';
    $lname = isset($name[1])?$name[1]:'';
    $db_user = new Users();
    $db_user->checkUsers($user_info->user_id,'twitter',$user_info->id,$user_info->screen_name,$fname,$lname,$user_info->lang,$access_token['oauth_token'],$access_token['oauth_token_secret'],$user_info->profile_image_url,$user_info);

    //Unset no longer needed request tokens
    unset($_SESSION['token']);
    unset($_SESSION['token_secret']);
    header('Location: /twitter.php');
}else{
    die("error, try again later!");
}

现在是 twitter.php 页面 https://www.tubenations.com/twitter.php

if ($user_login == 1){
echo '<h1 class="icon fa-twitter"> Twitter Page!</h1>';
    $user_id = intval($user->data['user_id']);
    include "twitter/includes/functions.php";
    #$user_info = checkUsers($user_id,$oauth_provider,$oauth_uid,$username,$fname,$lname,$locale,$oauth_token,$oauth_secret,$profile_image_url);
    echo $oauth_uid;

    if (empty($user_info['oauth_uid'] == 1))
        {
            echo '
            <div class="row">
                    <div class="8u">                    
                        <br />
                        <div class="twitterInfo2">IMPORTANT ANNOUNCEMENT: We are currently trying to setup a twitter authentication system, so that users have to authenticate their twitter accounts 
                        in order for them to be displayed on this page. So please bear with us! <br /></div>
                        On this page you can find all of our users Twitter accounts in one useful page, feel free to follow who you like the look off.<br />
                        We made this page as an extra feature, so it makes it easier to follow people!<br />
                        <strong>'.$user_info['oauth_uid'].'</strong>
                        <hr>
                        <div class="twitterInfo2">In order for you to appear on this page you need to authenticate your twitter account by clicking below! <br /></div>
                        <a href="/twitter/process.php"><img src="/twitter/images/sign-in-with-twitter.png" width="151" height="24" border="0" /></a>
                        <hr>

                    </div>
                        <div class="4u">

                        <a class="twitter-timeline" data-dnt="true" href="https://twitter.com/TubeNations" data-widget-id="635542971107143680">Tweets by @TubeNations</a>

                        </div>
            </div>';
        }
            else
            {
                echo '
            <div class="row">
                    <div class="8u">                    
                        <br />
                        <div class="twitterInfo2">IMPORTANT ANNOUNCEMENT: We are currently trying to setup a twitter authentication system, so that users have to authenticate their twitter accounts 
                        in order for them to be displayed on this page. So please bear with us! <br /></div>
                        On this page you can find all of our users Twitter accounts in one useful page, feel free to follow who you like the look off.<br />
                        We made this page as an extra feature, so it makes it easier to follow people!<br />
                        <hr>
                        <div class="twitterInfo2">You have already linked your twitter! <strong>'.$user_info['oauth_uid'].'</strong><br /> </div>
                        <hr>';
            echo getTwitterInfo();          
            echo '      </div>
                        <div class="4u">

                        <a class="twitter-timeline" data-dnt="true" href="https://twitter.com/TubeNations" data-widget-id="635542971107143680">Tweets by @TubeNations</a>

                    </div>
            </div>';
            }

            echo '</div>';
        }

我尝试了很多不同的组合,但都失败了...... 如果我缺少您需要的更多代码或信息,请告诉我

最佳答案

我设法自己解决了。所以我想我会发布我自己的答案:)

所以我基本上使用了来自其他函数的变量,并且还在下面的 process.php 文件中使用了它。

user->data['user_id'] 

然后我将我的 user_id 行移动到我的 sql 用户表的末尾,我还在 functions.php 文件的每一行的末尾添加了所有额外的 SQL 插入

user_id = '".$tn_userid."'

然后为了解决 Twitter 页面的问题,我创建了一个函数来从用户表中获取数据:

function getUserTwitterInfo($id){
$mysqli = db_connect();
$query = "SELECT * FROM `**HIDDEN**`.`users` WHERE `user_id`= ? ";

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$id = mysqli_real_escape_string($mysqli,$id);
if ($stmt = $mysqli->prepare($query)){
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($myrow = $result->fetch_assoc()) {
        $user_info = $myrow;
    }
    $stmt->close();
}

$mysqli->close();
return $user_info;

然后我就在推特页面上声明了它:

if ($user_login == 1){
echo '<h1 class="icon fa-twitter"> Twitter Page!</h1>';
    #$user_id = intval($user->data['user_id']);
    include "twitter/includes/functions.php";
    $id = $phpbb_user_id;
    $user_info = getUserTwitterInfo($id);

    #echo $oauth_uid;

    if ($user_info['user_id'] == 0)
        {
            echo '

现在我很高兴我成功了 :) 有点遗憾我没有得到答案 :(

关于php - 同步两个表 user_id 并感谢使用 twitter oauth 向用户确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36881839/

相关文章:

mysql - 我如何从 sql 中的 select 语句返回字符串字段

javascript - 更改 Twitter 链接的属性

twitter - 处理您的 OAuth 请求时出错 : Invalid oauth_verifier parameter

python - 如何浏览数据框并对文本进行正面或负面分类?

php - 如何在PhP中生成包含私钥和公钥的字符串?

php - 将数据传入和传出 CKEditor/jQuery-UI 模式对话框

PHP 面向对象 : retrieve data from database

php - 使用 Javascript/PHP 获取用户时区字符串?

MySQL Workbench 不在 Canvas 上显示标题

PHP - 在 mysql varchar 中插入小时的字符串末尾添加 NULL