Forum->Flatnux->integrazione facebook connect
  
Welcome Unknown Register Help383 Users

User Message


speleoalex

0 Level 10 10

levellevellevellevellevellevellevellevellevellevel
profile mail
Wednesday 16 December 2009 - 08:42

Re: integrazione facebook connect:
la funzione fn_login() si occupa anche di emulare il cookie prima che venga ricaricata la pagina.


$_FN['user'] = $_COOKIE ['myforum'] = $username;
$_COOKIE ['secid'] = md5 ( $username . getpass ( $username ) );


Riguardo a $_FN['user'] viene inizializzato all'interno di /include/dynamic.php

Secondo me senza modificare il core potresti creare un file in include/autoexec.d/ che si occupa di verificare l'accesso a facebook e a settare sia i cookie che la variabile $_FN['user'].

attualmente il login può essere gestito dal file include/flatnux.php senza bisogno della sezione login che effettua il redirect.



Alessandro




johndorazio

0 Level 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Thursday 17 December 2009 - 00:42

Re: integrazione facebook connect:
Ho trovato l'inizializzazione di $_FN['user'] all'interno di shared.php dove risiede la funzione fn_login(). Ho provato, come dicevi, a inserire un file nel autoexec.d dal nome 50_Facebook.php col seguente contenuto:


<?php

global $api_key,$secret;
$fb=new Facebook($api_key,$secret);
$fb_user=$fb->get_loggedin_user();

if(!defined("DB_HOST")){
define("DB_HOST", '**********');
define("DB", '**********');
define("DB_USER", '**********');
define("DB_PW", '**********');
}

// se sono utente facebook e sono loggato su facebook
if ($fb_user){
$connessione = mysql_connect(DB_HOST, DB_USER, DB_PW);
if (!$connessione){
die('Could not connect: ' . mysql_error());
}
mysql_select_db(DB);
$query = "SELECT * FROM users WHERE fb_userid='".$fb_user."'";
$result=mysql_query($query);

// se il mio account facebook è già associato al sito
if($row=mysql_fetch_row($result)){
fn_login($row[0]);

}
// se invece non è collegato...
else{
$fbusernoncollegato="noncollegato";
}
}

?>


Tu dicevi che fn_login() setta i cookie di sessione. Perché allora il blocco login non presenta l'utente come loggato? (Ho tolto di nuovo il campo ID e ho rimesso username come chiave primaria per semplificare il tutto.) Ricevo sulla posta elettronica l'avviso che l'utente si è loggato, ma sul blocco login non risulta così...



speleoalex

0 Level 10 10

levellevellevellevellevellevellevellevellevellevel
profile mail
Thursday 17 December 2009 - 16:44

Re: integrazione facebook connect:
potrebbe essere perchè il blocco login fa nuovamente la verifica del cookie.
Poichè ora fa tutto l'include di Flatnux.php diventa abbastanza inutile.

prova a sostituire nel blocco login alla linea 70:


elseif (versecid ( $_FN ['user'] ))

con

elseif (1)



Alex




johndorazio

0 Level 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Friday 18 December 2009 - 04:02

Re: integrazione facebook connect:
Ottimo! Così ha funzionato benissimo. Adesso sto camminando sulla giusta strada, grazie Alex.
8)

 [1] [2] [3]