Autore Topic: [RISOLTO]Catturare nello stesso modulo le variabili di un form  (Letto 1934 volte)

Offline ALBLAN

  • Esploratore
  • **
  • Post: 149
    • Mostra profilo
Salve è da poco che mi sto dilettando nello sviluppo di moduli
La mia questione è
se creo un form nel file default.php del mio modulo posso catturare le variabili del form passate con METHOD=POST nello stesso modulo ?
posso fare in modo di visualizzare o gestire il contenuto dei dati del form nello stesso modulo?
nel form il parametro action è index.php.
Il mio scopo è quello di gestire tutto col modulo
Grazie in anticipo
Alberto
« Ultima modifica: 16 Mag 2014, 15:46:37 da ALBLAN »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Catturare nello stesso modulo le variabili di un form
« Risposta #1 il: 03 Mag 2014, 15:10:36 »
sì, ma solo se il modulo è pubblicato anche nella pagina di destinazione.
pertanto la action della form del modulo deve essere la pagina corrente, ovvero deve riportare anche la query string della pagina corrente, altrimenti si limiterà a caricare la home page.


la modalità per recuperare le variabili dipende dalla versione di joomla in uso, comunque con php 5.3 e j3+ o le ultime joomla 2.5 conviene usare la classe jinput.


ciao

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

mau_develop

  • Visitatore
Re:Catturare nello stesso modulo le variabili di un form
« Risposta #2 il: 03 Mag 2014, 19:44:23 »
...anche se... un modulo di Joomla non dovrebbe avere quella dinamicità ma rappresentare staticamente dati provenienti da un componente che (visibile o meno) ne "elabora" l'input (guarda come fa il login che è sia mod che com)

 METODH=POST
------------------------
chi filtra i valori inseriti? ...posso upparti una bella bandierina dei pirati?

Offline ALBLAN

  • Esploratore
  • **
  • Post: 149
    • Mostra profilo
Re:Catturare nello stesso modulo le variabili di un form
« Risposta #3 il: 04 Mag 2014, 11:35:45 »
grazie
il mio problema è capire il flusso ... in che file devo trattare le variabili del form nello stesso default.php? mi manca un pezzo...

mau_develop

  • Visitatore
Re:Catturare nello stesso modulo le variabili di un form
« Risposta #4 il: 04 Mag 2014, 15:05:21 »
Dovresti studiare come funziona il mvc ... non c"è un file

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Catturare nello stesso modulo le variabili di un form
« Risposta #5 il: 04 Mag 2014, 15:30:11 »
direi nel file base del modulo, la logica non va certo nel template.


ciò che dice maurizio riguardo alla dinamicità del modulo è sicuramente vero, ma gli esempi in senso contrario innumerevoli... comunque dipende da che vuoi fare: poche righe di codice possono, imho, anche stare in un modulo, altrimenti meglio lo sviluppo di un componente.

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

mau_develop

  • Visitatore
Re:Catturare nello stesso modulo le variabili di un form
« Risposta #6 il: 04 Mag 2014, 17:33:09 »
si,... più che altro mi preoccupavo del filtering.
Diciamo che nel modulo ci possono stare delle chiamate json senza scomodare un componente un po' + dispendioso da scrivere.... diciamo anche che mettere in un modulo, che solitamente occupa parti limitate di una pagina, un form un minimo comprensibile, con un callback di eventuali errori o suggerimenti, è insolito e scomodo.

Detto ciò se mi dici tu (Marco) che hai fatto qs scelta , ci posso stare... so che ci hai ragionato.... con lui mi preoccupo che non siano scappatoie.
La mia "filosofia" è che usare il bigino dopo aver letto il libro intero va bene, usarlo come scorciatoia rischi di imparare "male"
« Ultima modifica: 04 Mag 2014, 17:37:28 da M_W_C »

Offline ALBLAN

  • Esploratore
  • **
  • Post: 149
    • Mostra profilo
[RISOLTO]Re:Catturare nello stesso modulo le variabili di un form
« Risposta #7 il: 16 Mag 2014, 15:36:58 »
Ho trovato questa eccellente guida molto chiara
[** deleted by mod **]
che mi delucida e risolve il mio problema

La guida si riferisce alla versione 1.5 di Joomla

Io utilizzo la 2.5.6 chi segue la guida deve apportare due piccole modifiche ai file di configurazione
1)Aggiungere il file default.xml (che allego come txt) nella cartella site\views\myform\tmpl
2)Modificare il file di configurazione myform.xml nella root del componente aggiungendo il path del file appena aggiunto

Avevo trovato una soluzione ma non proprio elegante e non ion linea con l'MVC di Joomla aggiungendo nella action del form una variabile che catturavo con JRequest::getVar nello stesso modulo... non elegantissimo

Grazie a questa guida ho una visione un pò più chiara del tutto.

Grazie a tutti

[allegato eliminato automaticamente dopo un anno]
« Ultima modifica: 16 Mag 2014, 16:23:28 da mmleoni »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[RISOLTO]Catturare nello stesso modulo le variabili di un form
« Risposta #8 il: 16 Mag 2014, 16:27:13 »
ciao,
 ho cancellato il link, perché quel codice è l'esempio di che cosa NON debba mai essere fatto: prendere un array dal canale post e passarlo così come è al metodo store() della table è indice di una assoluta mancanza di conoscenza delle più basilari nozioni di sicurezza.


... aveva ragione maurizio a preoccuparsi


ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline ALBLAN

  • Esploratore
  • **
  • Post: 149
    • Mostra profilo
Re:[RISOLTO]Catturare nello stesso modulo le variabili di un form
« Risposta #9 il: 16 Mag 2014, 19:46:27 »
sicurezza? ho tolto l'array (era elegante però!) ho fatto le mie belle requestvar ad una ad una rinominando i campi del form.....
senza l'array esiste un modo per mantenere la generalizzazione al momento non ho idee...sono fuso...o sto fuso...è lo stesso!

mau_develop

  • Visitatore
Re:[RISOLTO]Catturare nello stesso modulo le variabili di un form
« Risposta #10 il: 16 Mag 2014, 20:53:55 »
ripeto la domanda: chi filtra i valori recuperati dal POST? Hai presente cos'è una vulnerabilità?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[RISOLTO]Catturare nello stesso modulo le variabili di un form
« Risposta #11 il: 17 Mag 2014, 10:10:20 »
il problema non è nell'array ma nel getVar! va benissimo usare l'array, ma quando vi è una definizione della form.xml con la specifica del tipo dei dati (ed ecco il filtro) per il bind del post alla tabella.

non puoi usare getVar per prendere numeri sperando che l'utente ti metta un numero o per prendere un'email confidando che l'utente non ti metta un xss!

devi distinguere il tipo di dato ed applicare il filtro corretto: numero, stringa, comando, html, raw e così via.

verifica la documentazione di JRequest / JInput.

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 

Host

Torna su