1

誰かがこのコードを推測するのを手伝ってくれませんか..これは単なるスニペットであり、質問に必要なすべてのコードを含めたと思います. 実際、このコードは HybridAuth からのものです。私の質問は、最後の行の「user_id」はどこから来たのですか? $_SESSION["user"] は「id」の値を与えるため、知りたかったのです。そして、データベースから email-add の値を配置できる別の $_SESSION[" "] を作成したかった (その user_id の「id」が存在する場所と同じ場所)

// create an instance for Hybridauth with the configuration file path as parameter
$hybridauth = new Hybrid_Auth( $hybridauth_config );

// try to authenticate the selected $provider
$adapter = $hybridauth->authenticate( $provider );

// grab the user profile
$user_profile = $adapter->getUserProfile();

// load user and authentication models, we will need them...
$authentication = $this->loadModel( "authentication" );
$user = $this->loadModel( "user" );

# 1 - check if user already have authenticated using this provider before
$authentication_info = $authentication->find_by_provider_uid( $provider, $user_profile->identifier );

# 2 - if authentication exists in the database, then we set the user as connected and redirect him to his profile page
if( $authentication_info ){
// 2.1 - store user_id in session
$_SESSION["user"] = $authentication_info["user_id"]; 
4

1 に答える 1

2

への呼び出し$authentication->find_by_provider_uid()は連想配列を返します。その 1 つのキーは ですuser_id

その呼び出しによって返される他の列を確認するには:

var_dump($authentication_info);

emailがその配列のキーの中にある場合は、次のように設定でき$_SESSIONます。

// Store the email into session if it is present in $authentication_info
// Use whatever the appropriate key you find, be it email, email_address, user_email, whatever...
$_SESSION['user_email'] = $authentication_info['email'];
于 2012-08-14T12:41:21.497 に答える