Vai al contenuto
Lastonixx

webserver collegare sito ad un database esterno

Recommended Posts

Lastonixx

Ciao a tutti :),

 

non so se il titolo del post è appropriato o meno, ma vi spiego il mio problema :)....

 

recentemente ho startato un gioco online sul mio pc grazie all aiuto di macchine virtuali ecc e ho istallato il database su navicat...

 

io mi chiedevo se è possibile collegare il mio sito ipb al database del gioco,  in modo tale che quando uno si registra al mio sito, oltre che a creare l account per il sito lo crea nel database del gioco, e la gente con i stessi dati di registrazione entra nel gioco... è fattibile?:S

 

oddio spero di essermi spiegato bene o almeno di avervi fatto capire quali sono i miei dubbi ..

 

Vi saluto e ringrazio anticipatamente chiunque voglia aiutarmi...

 

ps:spero di non aver sbagliato sezione ^^

Modificato da Lastonixx

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

In quale linguaggio è scritto il gioco?

Ci sono diversi metodi... ma io ti consiglio di creare un tuo file sito.it/api.php e un modulo/form nel gioco che permetta di verificare se l'utente esiste e abbia inviato le credenziali corrette!

 

oppure evitando di usare ajax puoi usare xml-rpc

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Lastonixx

uso questo file php che ho messo nella cartella htdocs di xampp e che raggiungo tramite l indirizzo http://IP HAMACHI/account_create.php  dopo aver startato il  server di gioco e il servizio apache di xampp...  soltanto che riesco ad usarlo e vederlo soltanto io in locale.... per questo ho pensato di farlo interaggire con il forum ipb in modo tale che la gente si registrasse al forum e con i stessi dati si sarebbe creato un account nel database di gioco e sarebbero potuti entrare con i stessi dati...

 

account_create.php

 

 

 

soltanto che non so dove mettere mano... :/

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

uso questo file php che ho messo nella cartella htdocs di xampp e che raggiungo tramite l indirizzo http://IP HAMACHI/account_create.php  dopo aver startato il  server di gioco e il servizio apache di xampp...  soltanto che riesco ad usarlo e vederlo soltanto io in locale.... per questo ho pensato di farlo interaggire con il forum ipb in modo tale che la gente si registrasse al forum e con i stessi dati si sarebbe creato un account nel database di gioco e sarebbero potuti entrare con i stessi dati...

 

attachicon.gifaccount_create.php

 

 

 

soltanto che non so dove mettere mano... :/

c'era pubblicato nel forum un metodo che ti permetteva di fare il login registrazione e logout...

io attualmente ho quei file, ma li usavo per fare il login e logout.

dovrei integrare ancora i metodi per creare un utente se questo non esiste...

  • 'ERROR': There was an error, check the class property array: $class->auth_errors
  • 'NO_USER': There was no user found in IP.Board record set, but authentication passed in REMOTE directory
  • 'WRONG_AUTH': Authentication failed, wrong password or username
  • 'SUCCESS': Successful authentication, user and password matched. Load member if they exist or create new member for IP.Board.
######DA INSERIRE NELLA FUNZIONE doLogin() NEL FILE metodo.php OPPORTUNAMENTE!!#http://community.invisionpower.com/resources/articles.html/_/ipboard-3x/developer-articles/log-a-user-in-and-out-r323$this->member     =  $this->ipbRegistry->member();$this->memberData =& $this->ipbRegistry->member()->fetchMemberData();$this->settings =& $this->ipbRegistry->fetchSettings();$check_exist = IPSText::checkEmailAddress( $this->request['ips_username'] ) ?IPSMember::checkByEmail($this->request['ips_username']) || $login->emailExistsCheck($this->request['ips_username']) :IPSMember::load( $this->request['ips_username'], 'all', 'displayname' ) || IPSMember::load( $this->request['ips_username'], 'all', 'username' ) || $login->nameExistsCheck( $this->request['ips_username'], $this->memberData );//ATTENZIONE: nameExistsCheck ed emailExistsCheck hanno una forte restrizione che include WRONG_AUTH e MISSING_EXTENSIONS, quindi andrebbero fatti separatamente dove i request_code non devono essere 'NAME_NOT_IN_USE', 'METHOD_NOT_DEFINED' o 'EMAIL_NOT_IN_USE'... e poi messi nella condizione $check_esist.//ma almeno un piccolo check lo fanno anche loro...elseif($login->return_code == 'NO_USER' && isset($_POST['create']) && !$check_exist && IPSText::checkEmailAddress($this->request['ips_username']) ){        /* Custom profile field stuff */        $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/customfields/profileFields.php', 'customProfileFields' );        $custom_fields = new $classToLoad();                $custom_fields->initData( 'edit' );        $custom_fields->parseToSave( $_POST, 'register' );        /* Check */        if( $custom_fields->error_messages )        {            $form_errors['general']    = $custom_fields->error_messages;        }    $member = array(                         'name'                        => $this->request['ips_username'],                         'password'                    => $this->request['ips_password'],                         'members_display_name'        => $this->request['ips_username'],                         'email'                    => $this->request['ips_username'],                         'member_group_id'            => $this->settings['member_group'],                         'joined'                    => time(),                         'ip_address'                => $this->member->ip_address,                         //'time_offset'                => $this->request['time_offset'],                         //'coppa_user'                => $coppa,                         //'members_auto_dst'            => intval($this->settings['time_dst_auto_correction']),                         //'allow_admin_mails'        => intval( $this->request['allow_admin_mail'] ),                         //'language'                    => $this->member->language_id,                       );    $member = IPSMember::create( array( 'members' => $member, 'pfields_content' => $custom_fields->out_fields ), FALSE, FALSE, FALSE );    //Crea l'account per gli altri metodi di login (ips connect...che connette 2 o + board)    $login->createAccount( array(    'member_id'                => $member['member_id'],                                                   'email'                    => $member['email'],                                                'joined'                => $member['joined'],                                                'password'                => $this->request['ips_password'],                                                'ip_address'            => $this->member->ip_address,                                                'username'                => $member['members_display_name'],                                                'name'                    => $member['name'],                                                'members_display_name'    => $member['members_display_name'],                                           )        );}

Quindi il form andrà compilato con un input aggiuntivo con name="create" (checkbox, radio...) per permettere di registrare l'utente se non esiste e se il campo viene selezionato...

ULTIMA MODIFICA: praticamente per creare l'utente occorre che l'input "ips_username" sia una email, altrimenti la creazione dell'account potrebbe non andare a buon fine ma non ho testato... quindi più tardi creo tutto il codice che ti occorre e te lo pubblico.

 

 

LINK UTILI

http://community.invisionpower.com/resources/articles.html/_/ipboard-3x/developer-articles/log-a-user-in-and-out-r323

http://www.invisionpower.com/support/guides/_/advanced-and-developers/api-methods/ipsmember-r200

http://community.invisionpower.com/resources/guides.html/_/advanced-and-developers/integration/single-sign-on-sso-r209

https://www.invisionpower.com/support/guides/_/advanced-and-developers/integration/login-modules-r42

login.php

metodo.php

Modificato da BomAle

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Lastonixx

non riesco a vedere i link mi dice ke non ho i permessi.... comunque cosa devo fare con i due file php ke mi hai dato?:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

ho sistemato i link, erano da rifare con quelli nuovi...

col metodo.php hai le risorse che ti permettono di fare il login e logout quindi le funzioni.

col login.php equivale al tuo file account_create.php per verificare i dati!

a questo punto devi adattare il login.php con la funzione che registra l'utente... che ho scritto nel post precedente ;)

 

in generale bisogna fare un form html con i dati che vuoi che siano compilati, compresi i custom field/campi personalizzati.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Lastonixx

il blocco di codice dentro la funzione doLogin()  non va toccato giusto?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Lastonixx

ok adesso questi file li devo mettere da qualche parte per farli funzionare presumo... :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

ok adesso questi file li devo mettere da qualche parte per farli funzionare presumo... :)

si, nella stessa directory principale dove c'è il conf_global.php

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

×