1

現在、bbPress との RTX/Janrain 統合に取り組んでいますが、ワイルドカードと登録済みの電子メール アドレスを使用して試してみたにもかかわらず、結果が得られない SQL クエリに固執しています。

ログイン

$rpxApiKey = 'xxxxx';

if(isset($_POST['token'])) { /* STEP 1: トークン POST パラメータの抽出 */ $token = $_POST['token'];

/* ステップ 2: トークンを使用して auth_info API 呼び出しを行う */ $post_data = array('token' => $_POST['token'], 'apiKey' => $rpxApiKey, 'format' => 'json' );

$curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, 'https://rpxnow.com/api/v2/auth_info'); curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $raw_json = curl_exec($curl); curl_close($curl);

/* STEP 3: JSON auth_info レスポンスを解析 */ $auth_info = json_decode($raw_json, true);

if ($auth_info['stat'] == 'ok') { /* STEP 3 続き: 応答から「識別子」を抽出 */ $profile = $auth_info['profile']; $identifier = $profile['identifier'];
$profile['識別子']; if (isset($profile['photo'])) { $photo_url = $profile['photo']; }

if (isset($profile['displayName']))  {
  $name = $profile['displayName'];
}

if (isset($profile['email'])) { $email = $profile['email']; /* ステップ 5、データベースにユーザーが存在するかどうかを確認します。存在する場合はログインし、存在しない場合は新しいユーザーを作成してからログインします*/ global $bbdb; $querystr = " SELECT * FROM $bbdb->bb_users
WHERE user_email = $email LIMIT 1"; $rtx_user_id = $bbdb->get_results($querystr, OBJECT); print_r($rtx_user_id); if ($rtx_user_id) { echo "大成功"; wp_set_auth_cookie( (int) $rtx_user_id, 0 ); // 0 = 覚えていない、短いログイン、todo: フォーム値を使用 do_action('bb_user_login', (int) $rtx_user_id ); } if (!$rtx_user_id) { echo "大成功ではありません";}

/* STEP 6: Use the identifier as the unique key to sign the user into

あなたのシステム。これは Web サイトの実装によって異なり、ここに独自のコードを追加する必要があります。*/

/* エラーが発生しました */ }

else { // エラーを適切に処理します。これをネイティブのエラー処理システムにフックします。echo 'エラーが発生しました: ' . $auth_info['err']['msg']; } } } ?>

この問題は、ユーザーが存在するかどうかを確認するステップ 5 で発生します。

前もって感謝します、マルテン

4

1 に答える 1

2

ツイッターで話したように、クエリ行は

$querystr = "SELECT * FROM $bbdb->users WHERE user_email = '$email' LIMIT 1";
于 2010-12-23T10:55:33.893 に答える