$s_dby = sprintf('select id, s_id, s_t, s_r, s_n, edate, is_show from %s where aid=%s and name=%s limit 1', $dbprefix . 'm_sync', $r_dbu['id'], SQLString($nct, 'text')); $q_dby = mysql_query($s_dby) or die(''); $r_dby = mysql_fetch_assoc($q_dby); if (mysql_num_rows($q_dby) > 0) { if ($r_dby['edate'] < time() && $r_dby['edate'] > 0 && $r_dby['s_r'] != '') { $o = new googlePHP($config['google_key'], $config['google_se']); $result = $o->access_token_refresh($r_dby['s_r']); if (isset($result['access_token']) && $result['access_token'] != '') { $r_dby['s_t'] = $result['access_token']; $r_dby['edate'] = time() + $result['expires_in']; } $u_db = sprintf('update %s set s_t=%s, edate=%s, mdate=%s where id=%s', $dbprefix . 'm_sync', SQLString($r_dby['s_t'], 'text'), SQLString($r_dby['edate'], 'int'), time(), $r_dby['id']); $result = mysql_query($u_db) or die(''); } $gg_o = new googlePHP($config['google_key'], $config['google_se'], $r_dby['s_t']); $gg_a = $gg_o->me(); if (isset($gg_a['id']) && $gg_a['id'] != '') { $is_sync = 1; $d_db = sprintf('delete from %s where aid<>%s and name=%s and s_id=%s', $dbprefix . 'm_sync', $r_dbu['id'], SQLString($nct, 'text'), SQLString($gg_a['id'], 'text')); $result = mysql_query($d_db) or die(''); $me_url = $gg_a['link']; if ($r_dby['s_n'] != $me_url || $r_dby['s_id'] != $gg_a['id']) { $u_db = sprintf('update %s set s_n=%s, s_id=%s where id=%s', $dbprefix . 'm_sync', SQLString($me_url, 'text'), SQLString($gg_a['id'], 'text'), $r_dby['id']); $result = mysql_query($u_db) or die(''); } $content .= '当前已绑定Google账号<table width="200"><tr><td align="center"><img src="' . $gg_a['picture'] . '" alt=""/><br/><a href="' . $me_url . '" target="_blank">' . $gg_a['name'] . '</a>(<a href="?m=profile&t=sync&n=' . $nct . '&lt=1">取消绑定</a>)</td></tr></table>'; $content .= '<br/><br/><form method="post" action=""><input type="checkbox" name="is_show" value="1"' . ($r_dby['is_show'] > 0 ? ' checked="checked"' : '') . '/>隐藏已绑定Google账号相关信息<br/><input type="submit" value="更新" class="button"/><input type="hidden" name="isl_google_h" value="' . $r_dby['id'] . '"/></form>'; } else { $d_db = sprintf('delete from %s where aid=%s and name=%s', $dbprefix . 'm_sync', $r_dbu['id'], SQLString($nct, 'text')); $result = mysql_query($d_db) or die(''); }
$_SESSION['douban_login_u_r'] = ''; $_SESSION['douban_login_u_edate'] = 0; } } if (!isset($_SESSION['douban_login_u_t']) || $_SESSION['douban_login_u_t'] == '') { $db_o = new doubanPHP($config['douban_key'], $config['douban_se']); $aurl = $db_o->login_url($config['site_url'] . 'douban_callback.php', 'douban_basic_common'); header('Location:' . $aurl); exit; } break; case 'google': require_once 'lib/google.php'; if (isset($_SESSION['google_login_u_t']) && $_SESSION['google_login_u_t'] != '') { $gg_o = new googlePHP($config['google_key'], $config['google_se'], $_SESSION['google_login_u_t']); $me = $gg_o->me(); if (isset($me['id']) && $me['id'] != '') { if (isset($_SESSION[$config['u_hash'] . '_m']) && $_SESSION[$config['u_hash'] . '_m'] == 1) { $goto = 'm/'; $_SESSION[$config['u_hash'] . '_m'] = ''; unset($_SESSION[$config['u_hash'] . '_m']); } $s_dbu = sprintf('select a.id, a.username, a.password, a.sylorm, b.s_t, b.id as bid from %s as a, %s as b where a.id=b.aid and b.s_id=%s and b.name=%s%s limit 1', $dbprefix . 'member', $dbprefix . 'm_sync', SQLString($me['id'], 'text'), SQLString($nct, 'text'), $vdb); $q_dbu = mysql_query($s_dbu) or die(''); $r_dbu = mysql_fetch_assoc($q_dbu); if (mysql_num_rows($q_dbu) > 0) { if ($r_dbu['s_t'] != $_SESSION['google_login_u_t']) { $u_db = sprintf('update %s set s_t=%s, s_r=%s, edate=%s where id=%s', $dbprefix . 'm_sync', SQLString($_SESSION['google_login_u_t'], 'text'), SQLString($_SESSION['google_login_u_r'], 'text'), SQLString($_SESSION['google_login_u_edate'], 'int'), $r_dbu['bid']); $result = mysql_query($u_db) or die(''); } $u_db = sprintf('update %s set visit=visit+1, visitdate=%s where id=%s', $dbprefix . 'member', time(), $r_dbu['id']);