| 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
|
| 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ì...
|
| 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
|
| Friday 18 December 2009 - 04:02
Re: integrazione facebook connect: Ottimo! Così ha funzionato benissimo. Adesso sto camminando sulla giusta strada, grazie Alex.
|