Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/04/2009, 01:57
Bam_Margera
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 3 meses
Puntos: 13
Respuesta: [APORTE] Usar Facebook Connect

Bueno he conseguido solucionar mi antiguo inicio de sesión y creo es cuestión de una mini tontería que el inicio con facebook connect me funcion, la cosa es que yo no veo el problema...

panelcontro.php

Código PHP:
<? 
      session_start
(); 
    if (!isset(
$_SESSION['s_username'])) {
        
header("location: sesiones/entra.php");   
    }  
    
?>
Con esto, debería dejarme llegar al contenido tanto con uno como con otro, pues para cada tipo de sesión le doy $_SESSION['s_username'] = $data['username'];...

y en entra.php ( había un lio genial) ahora tengo:

Código PHP:
<? 




        session_start
();
        
        require_once 
'../../facebook/facebook.php'//Ruta de la api...
            
            
$Aplicacion '...........secret...'//No olvides ingresar la key de tu aplicación
            
$ClaveSecreta '...........secret...'//No olvides ingresar la clave proporcionada por FB
            
            
$Facebook = new Facebook($Aplicacion$ClaveSecreta);  
            

        [
COLOR="SeaGreen"]if ($_POST['username'] && $_POST['enviar'] == "Login"){[/COLOR]
        
//Comprobacion del envio del nombre de usuario y password
            
$username=$_POST['username'];
            
$password=$_POST['password'];
            if (
$password==NULL) {
                echo 
"<p>La password no fue enviada</p>";
            }else{
                
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
                
$data mysql_fetch_array($query);
                if(
$data['password'] != $password) {
                    echo 
"<p>Login incorrecto</p>";
                }else{
                    
$_SESSION['s_username'] = $data['username'];
                    
header("location: ../panelcontrol.php"); 
                }
            }
           
            
            
        }[
COLOR="Green"]else  if($Facebook->get_loggedin_user()){[/COLOR]
                    echo 
"<p>Entramos en la condición 'get_loggedin_user'</p>";
                
$fid $Facebook->require_login(); //obtenemos el id del user en FB
                               
                
$user_details $Facebook->api_client->users_getStandardInfo($fid, array('last_name','first_name')); //intentamos obtener un poco de información del perfil
                
$Nombre $user_details[0]['first_name']; //Almacenamos los datos del array
                
$Apellido $user_details[0]['last_name']; //Seguimos con la matriz, esta vez almacenamos el Apellido
                
$nombreusuario $Nombre." ".$apellido;
                
                
$sql " SELECT * FROM `users` WHERE fid=$fid ORDER BY fecha DESC";
                      
$rs mysql_query($sql$con);
                if(
mysql_num_rows($rs)>0){
                    echo 
"<p>hemos pasado por aqui<p>"//el usuario ya había entrado alguna vez - no registro
                    
$_SESSION["s_username"] = $nombreusuario
                }else{
                    
$sqlInsertNot mysql_query("INSERT INTO users
                                     (username, fid)
                                     VALUES ('$nombreusuario', '$fid')"
,
                                     
$con) or die(mysql_error()); // es la primera - registro
                     
                    
$_SESSION["s_username"] = $nombreusuario;     //inicio sesion?
                    
header("location: http://laspruebasdetoni.netau.net/panelcontrol.php"); 
                    }  

            
            
            }
        
    
?>
El formulario de entrado, tanto normal como facebook connect está en entra.php también, el boton de fbcnnct, :

Cita:
<fb:login-button length="long" onlogin="location.href='<? echo $_SERVER['REQUEST_URI'];?>'"></fb:login-button>
<script type="text/javascript" src="HTTP://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>
<script type="text/javascript">
FB.init("...........secret...","xd_receiver.htm");
</script>

Bueno, las url en las preferencias 'connect' de facebook, he cambiado simplemente a mi domino (http://laspruebasdetoni.netau.net/)

Me gustaría saber si las lineas coloreadas están en lugar correcto y escritas bien..

Síntomas:

-al iniciar con fbconnect -> se abre la ventana ajax, me logueo, y en la misma ventana se intenta cargar alguna web de mi domino, pero no me da tiempo a verla pues salta la página de mi hosting de cuando no ha encontrado... ¿sabeis como puedo ver la url que era? eso me ayudaría mucho, supongo...

-> Si después de esto, voy a facebook estoy directamente logueado; así que parece que el login funciona, solo que no estoy consiguiendo interpretarlo así en mi web....


Creo que todo depende de la URL que tenga en el texto que he puesto en rojo, en el botón; la comprobación de inicio de sesión, debería estar allí?

Bueno, a ver si alguien se anima... la solución le puede servir a todo el mundo... :$

un saludo, y gracias!