Autore Topic: Nuovo controllo form di registrazione  (Letto 430 volte)

Offline aragorn76

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Nuovo controllo form di registrazione
« il: 24 Set 2018, 19:20:18 »
Salve a tutti,
vorrei un aiuto se possibile in programmazione.. mi spiego con piccola premessa:


Ho il mio form di registrazioni utenti.. alla fine messo controllo recaptcha.. tutto perfettamente funzionante..
Ma anche se vi è questo controllo, mi ritrovo ogni giorno con centinaia di utenti fake registrati e abilitati pure
(qui non mi spiego come fanno dato che ho messo conferma con mail... e so che sono fake perche hanno o nella mail, o nel nome la parola *** e cose del genere.. oltre a nomi lunghissimi e strani e mail assurde.. tipo nome: Best Place To Buy Generic *** Online - 368110  mail: abdhochdystperbui@buy***onlinerh.info)... allora per ovviare a questo problema di account, vorrei inserire ulteriore controllo durante la registrazione.... iniziamo:

Ho visto che nel file register.php ho il mio codice php del form ed ho aggiunto, dopo i campi normali e dentro il <form>:

Codice: [Seleziona]
<table>
             <tr style="color:#000"><td><font color="#FFFFFF">Inserisci solo la scritta verde:</font></td></tr>
              <tr><td width="164"><img src="./captcha.php" /></td></tr>
             <tr align="center"><td><input type="text" id="code" name="code" /></td></tr>
             
 </table>


il mio bel file captcha.php è in allegato... nel form appare quindi un immagine di una scritta random, colorata in parte verde..
l'utente scrive quindi solo la parte verde, e quando si clicca su registra del form, mi sono accorto che mi rimanda al file "registration.php" all'interno di "/www/components/com_users/controllers".... e qui il problema.. ho modificato il file e messo il codice per far controllo se codice inserito da utente, è uguale a quello dell'immagine:


Dentro "public function register(){ ......."
Codice: [Seleziona]

if(isset($_SESSION['captcha_code']) && isset($_POST['code']) && $_POST['code']!="" )
       {         
          if (strtolower($_SESSION['captcha_code']) == strtolower($_POST['code']))
         { 

                  ...........                  è ok... registrare utente!!

}
}

Il problema è che non  riconosce, o comunque non preleva, il valore di "code" che dovrebbe prendere dal form... come posso fare per trasferire il valore alla pagina registration.php e che in controllo funzioni??? son giusti i passaggi che faccio?

Online tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 29530
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
    • Xataface Italia
Re:Nuovo controllo form di registrazione
« Risposta #1 il: 24 Set 2018, 19:58:33 »
Modificare il codice core di joomla non è mai opportuno, oltre che perdere le modifiche potresti creare delle falle di sicurezza. Se non si è ferrati per il php meglio affidarsi ad altre estensioni tipo chronoforms e simili che hanno più possibilità di personalizzazione.
NEWS DataGrill Xataface Installer (Ver. 1.0.1) per Joomla 3.8.x - DEMO Gestione Magazzino

Offline marine

  • Team Joomla.it
  • Instancabile
  • *******
  • Post: 4638
  • Sesso: Maschio
    • Mostra profilo
Re:Nuovo controllo form di registrazione
« Risposta #2 il: 24 Set 2018, 20:00:52 »
che versione di joomla hai?

Offline aragorn76

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re:Nuovo controllo form di registrazione
« Risposta #3 il: 24 Set 2018, 20:33:36 »
versione 3 di joomla.. e uso il K2 come form per registrare l'utente..


il php lo conosco un poco.. non conosco bene come il joomla gestisce le variabili..
Infatti all'esterno di joomla dovessi usare i file in semplice php tutto funziona..

cmq potete verificare il controllo nella mia pagina:


http://www.lineage2italia.it/index.php?option=com_users&view=registration&Itemid=210&lang=it


attualmete non fa registrare perchè, essendoci il controllo, per lui le variabili non sono uguali (dato che manco le vede)
e quindi non procede a leggere la funzione registra messo all'interno del mio if :)




« Ultima modifica: 24 Set 2018, 20:35:16 da aragorn76 »

Offline marine

  • Team Joomla.it
  • Instancabile
  • *******
  • Post: 4638
  • Sesso: Maschio
    • Mostra profilo
Re:Nuovo controllo form di registrazione
« Risposta #4 il: 24 Set 2018, 20:56:13 »
secondo me, ti ritrovi tutti quegli ospiti indisiderati perchè il tuo sito non è aggiornato all'ultima versione di joomla, la 3.8.12

Offline aragorn76

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re:Nuovo controllo form di registrazione
« Risposta #5 il: 25 Set 2018, 12:05:51 »
Ho aggiornato alla 3.8.12.   e posso verificare cosi se qualcosa cambia, ma essendo un server di gioco verrà attaccato da server rivali.. quindi il controllo lo vorrei mettere lo stesso.. peccato che non so come si crea un componente joomla, perche sarebbe un ottima idea da usare come ulteriore controllo per registrarsi..

avete idea intanto a come devo trasferire la variabile e cosa devo scrivere per prelevare il valore per poterlo confrontare?

Offline marine

  • Team Joomla.it
  • Instancabile
  • *******
  • Post: 4638
  • Sesso: Maschio
    • Mostra profilo
Re:Nuovo controllo form di registrazione
« Risposta #6 il: 25 Set 2018, 12:26:00 »
al prossimo joomladay, il 27 ottobre a Torino, fanno un workshop (gratuito!) su come creare le estensioni per joomla, potrebbe essere un buon punto di partenza!
www.joomladay.it

Offline aragorn76

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re:Nuovo controllo form di registrazione
« Risposta #7 il: 25 Set 2018, 12:52:52 »
Purtroppo lavoro e da Messina la strada è lunga  ;D ;D

Sto cercando di prelevare dal form il valore in questo modo:

$code = $_POST['code'];

provato anche cosi

$jinput = JFactory::getApplication()->input;
$code = $jinput->get('code', '', 'string');


ma nulla... il valore dell'immagine son riuscito a prelevarlo tramite le session,
ma non riesco proprio a prelevare il valore "code"...
forse ho sbagliato o manca qualcosa nel codice del file dove sta il form?
Cioè.. devo prelevare questo valore di input messo dentro il form di joomla.. nessuno sa come fare?

Codice: [Seleziona]
....        <tr align="center"><td><input type="text" id="code" name="code" /></td></tr>             ....

tenendo presente che se invio i dati ad una pagina esterna php, tutto funziona prelevando con:

$code = $_POST['code'];

che però non funziona nel file registration.php..
« Ultima modifica: 25 Set 2018, 18:59:59 da aragorn76 »

 

Torna su