Forum->Flatnux->integrazione facebook connect
  
Benvenuto Sconosciuto Registrati Aiuto383 Utenti

Utente Messaggio


johndorazio

0 Livello 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Domenica 06 Dicembre 2009 - 00:01

integrazione facebook connect:
Sto cercando di sviluppare l'integrazione di facebook connect in un sito costruito su flatnux; finora sono riuscito ad attivare il connect per un utente già registrato al sito, ma non riesco a completare la registrazione di un nuovo utente con i credenziali facebook. Ho modificato il file login_functions.php in modo da settare i valori del array $newvalues con i dati dell'utente facebook, e non ci sarebbe bisogno in tal caso di chiedere password ma per semplificare il processo di registrazione setto $newvalues['passwd']="facebook" e $newvalues['passwd_retype']="facebook" ma ciònonostante ricevo errore

Notice: Undefined index: passwd in /membri/consultapg33/include/xmldb_forms.php on line 603

Notice: Undefined index: passwd_retype in /membri/consultapg33/include/xmldb_forms.php on line 603



Come mai "passwd" e "passwd_retype" non sono riconosciuti dal index mentre "name", "email", ecc. vanno bene?



johndorazio

0 Livello 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Domenica 06 Dicembre 2009 - 00:11

Re: integrazione facebook connect:
Se può aiutare, ho aggiunto questo codice alla funzione vis_reg() in login_functions.php:

          echo "<div style=\"border:1px groove white;padding:60px;margin:30px;\">";
openloginform();
echo "<fb:login-button v=\"2\" onlogin=\"location.href='?mod=".$_FN['mod']."&op=$op&opmod=reg';\">Registrati con i credenziali facebook</fb:login-button>";
closeloginform();
echo "</div>";


poi ho aggiunto questo codice alla funzione reg(), prima della convalida dei campi:
        if($fb_user){
$fb_user_details=$fb->api_client->users_getInfo($fb_user, array('name','proxied_email'));
$newvalues['email']=$fb_user_details[0]['proxied_email'];
$newvalues['username']=$fb_user_details[0]['name'];
$newvalues['username'] = strtolower(trim($newvalues['username']));
$newvalues['username'] = preg_replace('/[^a-z0-9-]/', '', $newvalues['username']);
$newvalues['username'] = preg_replace('/-+/', "", $newvalues['username']);
$newvalues['passwd']="facebook";
$newvalues['passwd_retype']="facebook";
$newvalues['name']=$fb_user_details[0]['name'];
$newvalues['fb_userid']=$fb_user;
$nome = $newvalues['name'];
}





speleoalex

0 Livello 10 10

levellevellevellevellevellevellevellevellevellevel
profile mail
Domenica 06 Dicembre 2009 - 16:29

Re: integrazione facebook connect:
dovresti inserire a mano l' utente senza passare dalle funzioni di login, con una cosa simile a questa:


global $_FN;

$table = new XMLTable("fndatabase", "users", $_FN['datadir']);

$newvalues = array();
$fb_user_details=$fb->api_client->users_getInfo($fb_user, array('name','proxied_email'));
$newvalues['email']=$fb_user_details[0]['proxied_email'];
$newvalues['username']=$fb_user_details[0]['name'];
$newvalues['username'] = strtolower(trim($newvalues['username']));
$newvalues['username'] = preg_replace('/[^a-z0-9-]/', '', $newvalues['username']);
$newvalues['username'] = preg_replace('/-+/', "", $newvalues['username']);
$newvalues['passwd']="facebook";
$newvalues['name']=$fb_user_details[0]['name'];
$newvalues['fb_userid']=$fb_user;
$nome = $newvalues['name'];
$newvalues['active']=1;

$table->InsertRecord($newvalues);




ricordati di settare il campo "active" dell' utente a 1.

Alessandro




johndorazio

0 Livello 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Lunedì 07 Dicembre 2009 - 11:45

Re: integrazione facebook connect:
Ok ora riesco ad effettuare la registrazione. Ora ho un problema che riguarda il database mysql, per facilitare le funzioni facebook ho attivato il database mysql su flatnux ma ho aggiunto un campo ID auto-increment come chiave primaria. Flatnux vorrebbe che 'username' sia la chiave primaria, ma con un campo auto-increment questo non è possibile.

Alla registrazione ricevo questo errore:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /membri/consultapg33/include/xmldb_mysql.php on line 304


Sicuramente si tratta del fatto che la chiave primaria non corrisponde, perché line 304 di xmldb_mysql.php si trova nella seguente funzione:

	function GetRecordByPk($pvalue)
{
$path=$this->path;
$databasename= $this->databasename;
$tablename=$this->tablename;
$pkey=$this->primarykey;
// se i dati sono su database --->
if ($this->connection)
{
if (!$this->conn)
die(mysql_error());
mysql_select_db($this->mysqldatabasename);
$query = "SELECT * FROM $tablename WHERE $pkey LIKE '$pvalue'";
//dprint_r($query);
$result = mysql_query($query);
$res = mysql_fetch_assoc($result);
return $res;
}
// <--- se i dati sono su database

}


Devo eliminare per forza il campo ID oppure c'è altro modo?




johndorazio

0 Livello 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Martedì 08 Dicembre 2009 - 23:39

Re: integrazione facebook connect:
Ho provato ad eliminare il campo ID e ho rimesso il campo username come chiave primaria, ma l'errore è ancora presente:

Nuovo utente johndorazio registrato correttamente.
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /membri/consultapg33/include/xmldb_mysql.php on line 304


Ora sei registrato

Avanti >>



La registrazione avviene, non so questo errore a che cosa sia dovuto...

 [1] [2] [3]