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

Hola chicos,

he estado mirandolo de nuevo; y bueno, he hecho algunos cambios y adivinad! no me funciona... :(
y encima, tampoco me funciona ya el inicio de sesión para usuarios ya registrados de la página...
En entra.php tengo el formulario de entrada, dónde soy remitido desde panelcontrol.php si la sesión no está iniciada (así)

panelcontrol.php


Código PHP:
<? 
  
if (isset($_SESSION['s_username'])) {
echo 
"Bienvenido a mi sitio has ingresado como ".$_SESSION['s_username'].", gracias por la visita!";
}else{
echo 
"Tu no estas autentificado dirígete a login.php o registrate en register.php";
header("location: sesiones/entra.php");   
echo 
$_SESSION['s_username'];
}  
?>

Esto debería servir para ambos tipos de inicio de sesión..... ¿verdad?


en entra.php tengo:


Código PHP:
<? require_once '../../facebook/facebook.php'//Ruta de la api...

$Aplicacion 'mikey'//No olvides ingresar la key de tu aplicación
$ClaveSecreta 'miclavesecreta'//No olvides ingresar la clave proporcionada por FB

$Facebook = new Facebook($Aplicacion$ClaveSecreta);  




session_start();



if (
$_POST['username'] && $_POST['enviar'] == "Login") {
    
//Comprobacion del envio del nombre de usuario y password
    
echo "boton pulsado</br>";
    
$username=$_POST['username'];
    
$password=$_POST['password'];
    if (
$password==NULL) {
        echo 
"La password no fue enviada";
    }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 
"Login incorrecto";
        }else{
            
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
            
$row mysql_fetch_array($query);
            
$_SESSION["s_username"] = $row['username'];
            echo 
"Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
            
header("location: ../panelcontrol.php"); 
            }
    }
} else {

    require_once 
'../../facebook/facebook.php'//Ruta de la api...
    
    
$Aplicacion '0'//No olvides ingresar la key de tu aplicación
    
$ClaveSecreta '0'//No olvides ingresar la clave proporcionada por FB
    
    
$Facebook = new Facebook($Aplicacion$ClaveSecreta);  
    
    if(
$Facebook->get_loggedin_user())
    {
          
$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 idf=$fid ORDER BY fecha DESC";
        
$rs mysql_query($sql$con);
        if(
mysql_num_rows($rs)>0){
            echo 
"hemos pasado por aqui"//el usuario ya había entrado alguna vez - no registro
        
}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?
        
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
        
header("location: ../panelcontrol.php"); 
        
        
header("location: ../panelcontrol.php");
    
    
    
    
    }  


?>
La cuestión es que:
-si inicio sesión con mi user y pass de usuario ya registrado, se me remite de nuevo a entra.php
-si intento iniciar la sesión con mi user/pass de facebook, la ventana ajax no se me abre y se me redirecciona a entra.php

Y Luego, en facebook, en las preferencias de la aplicación hay que configurar dos url
Connect URL: donde tengo puesta entra.php
Account Reclamation URL: donde tengo puesta panelcontrol.php

y ahora que lo pienso, en el script, dónde está en negrita, qué hay que poner.. ?

<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("j","xd_receiver.htm");
</script>


¿Una ayudita? por favor...


Un saludo y gracias!

Última edición por Bam_Margera; 24/04/2009 a las 01:39 Razón: había mi clave!!!!!!!!!