francoboy7

hybridauth

Oct 12th, 2012
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.10 KB | None | 0 0
  1. <?php
  2.     session_start();
  3.    
  4.     // config and includes
  5.     $config = dirname(__FILE__) . '/../social/hybridauth/config.php';
  6.     require_once( "../social/hybridauth/Hybrid/Auth.php" );
  7.  
  8.    
  9.    // the selected provider
  10.  
  11.    $provider_name = $_GET["provider"];
  12.  
  13.    try{
  14.        // initialize Hybrid_Auth with a given file
  15.        $hybridauth = new Hybrid_Auth( $config );
  16.  
  17.        // try to authenticate with the selected provider
  18.   $adapter = $hybridauth->authenticate( $provider_name );
  19.    
  20.        // then grab the user profile
  21.        $user_profile = $adapter->getUserProfile();
  22.  
  23.  
  24. if (isset($user_profile->email))
  25.     {
  26. $email = $user_profile->email;
  27.     }
  28. else
  29.     {
  30. $email = "[email protected]";
  31.     }
  32. $username = $user_profile->displayName;
  33.  
  34. $password = $user_profile->identifier;
  35.  
  36.     $password = md5($password);
  37.  
  38. $first_name = $user_profile->firstName;
  39.  
  40. if (isset($user_profile->lastName))
  41.     {
  42. $last_name = $user_profile->lastName;
  43.     }
  44. else
  45.     {
  46. $last_name = "Twitter";
  47.     }
  48. if (isset($user_profile->gender))
  49.     {
  50.     $gender = $user_profile->gender;
  51.     }
  52. else
  53.     {
  54.     $gender = "male";
  55.     }
  56.  
  57. $identifier = $user_profile->identifier;
  58.  
  59.  
  60.  
  61. try
  62. {
  63.     $pdo = new PDO('mysql:host=localhost;dbname=*****', '****', '************');
  64.  
  65.      //on tente d'exécuter les requêtes suivantes dans une transactions
  66.  
  67.     //on lance la transaction
  68.  
  69.    $req = $pdo->prepare('SELECT username FROM members WHERE email = :email OR identifier = :identifier');
  70.     $req->execute(array('email' => $email, 'identifier' => $identifier));
  71.  
  72.         if($req->rowCount()) {
  73.             echo 'il existe un utilisateur';
  74.         }
  75.        
  76.         else {
  77.     $req = $pdo->prepare('INSERT INTO members SET email = :email, username = :username, password = :password, firstname = :firstname, lastname = :lastname, gender = :gender, identifier = :identifier, provider = :provider');
  78.     $req->execute(array('email' => $email, 'username' => $username, 'password' => $password, 'firstname' => $first_name, 'lastname' => $last_name, 'gender' => $gender, 'identifier' => $identifier, 'provider' => $provider_name));
  79.             echo 'Vous etes maintenant inscrit';
  80.  
  81.            
  82.         }
  83.  
  84.    
  85. }
  86.  
  87. catch(Exception $c) //en cas d'erreur
  88. {
  89.    
  90.     //on affiche un message d'erreur ainsi que les erreurs
  91.     echo 'Tout ne s\'est pas bien passé, voir les erreurs ci-dessous<br />';
  92.     echo 'Erreur : '.$c->getMessage().'<br />';
  93.     echo 'N° : '.$c->getCode();
  94.  
  95.     //on arrête l'exécution s'il y a du code après
  96.     exit();
  97. }
  98.  
  99.  
  100.  
  101.   }
  102.    catch( Exception $e ){
  103.        echo "Error: please try again!";
  104.        echo "Original error message: " . $e->getMessage();
  105.    }
  106.    
  107.    ?>
  108.    
  109.    
  110. <fieldset>
  111.     <legend>Or use anohter service</legend>
  112.  
  113.     <a href="?provider=facebook">Facebook</a><br />
  114.     <a href="?provider=twitter" >Twitter</a><br />
  115.     <a href="?provider=google" >Google</a><br />
  116.  
  117. </fieldset>
  118.  
  119. <fieldset>
  120.     <legend>Info</legend>
  121.    
  122.     <?php
  123. echo $email;
  124. echo "<br />";
  125. echo $username;
  126. echo "<br />";
  127. echo $last_name;
  128. echo "<br />";
  129. echo $first_name;
  130. echo "<br />";
  131. echo $gender;
  132. echo "<br />";
  133. echo $identifier;
  134. echo "<br />";
  135. echo $user_profile->birthday;
  136.  
  137.  
  138.     ?>
  139.  
  140.    
  141. </fieldset>
Advertisement
Add Comment
Please, Sign In to add comment