# Ricerche sui campi di un form

**URL:** <https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571>\
**Category:** IT\
**Created:** [December 9, 2007, 5:39pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571 "2007-12-09T17:39:41Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 9, 2007, 5:39pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/1 "2007-12-09T17:39:41Z")

</div>

Salve a tutti, vorrei chiedere, in quanto inesperto di Rails, il metodo  
piÃ¹ appropriato per utilizzare i campi di un form come criteri di una  
query, senza dover compormi l’SQL da passare al metodo ‘find\_by\_sql’  
(che credo sia anche un metodo vulnerabile all’sql injection ).  
Da premettere che non tutti i campi del form devono essere  
obbligatoriamente compilati.

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 9, 2007, 5:50pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/2 "2007-12-09T17:50:08Z")

</div>

Lobo C. wrote:

> Salve a tutti, vorrei chiedere, in quanto inesperto di Rails, il metodo  
> più appropriato per utilizzare i campi di un form come criteri di una  
> query, senza dover compormi l’SQL da passare al metodo ‘find\_by\_sql’  
> (che credo sia anche un metodo vulnerabile all’sql injection ).  
> Da premettere che non tutti i campi del form devono essere  
> obbligatoriamente compilati.

ciao,

puoi fare una cosa del genere, i punti interrogativi servono proprio per  
seistemare l’ sql injection, praticamente così facevo i parametri prima  
di andare alla query vengono controllati(nn ricordo come).

params[] è il vettore contenente i dati della form

```
@travels = Travel.find(:all,
                       :include => [:user,:location],
                       :conditions => ["travels.date < ? AND

```

travel\_departure \>= CURDATE()",params[“travel\_date”]],  
:order =\> “travel\_departure  
ASC,locations.seq”)

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 9, 2007, 7:44pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/3 "2007-12-09T19:44:13Z")

</div>

Andrea(Q) wrote:

> Lobo C. wrote:
> 
> > Salve a tutti, vorrei chiedere, in quanto inesperto di Rails, il metodo  
> > piï¿½ appropriato per utilizzare i campi di un form come criteri di una  
> > query, senza dover compormi l’SQL da passare al metodo ‘find\_by\_sql’  
> > (che credo sia anche un metodo vulnerabile all’sql injection ).  
> > Da premettere che non tutti i campi del form devono essere  
> > obbligatoriamente compilati.
> 
> ciao,
> 
> puoi fare una cosa del genere, i punti interrogativi servono proprio per  
> seistemare l’ sql injection, praticamente cosï¿½ facevo i parametri prima  
> di andare alla query vengono controllati(nn ricordo come).
> 
> params[] ï¿½ il vettore contenente i dati della form
> 
> ```
> @travels = Travel.find(:all,
> :include => [:user,:location],
> :conditions => ["travels.date < ? AND
> 
> ```
> 
> travel\_departure \>= CURDATE()",params[“travel\_date”]],  
> :order =\> “travel\_departure  
> ASC,locations.seq”)

Quindi posso passare direttamente l’hash params come parametro a find.  
Ma come si comporta con i campi non compilati?  
Nel senso che, riferendomi all’esempio che mi hai mandato, se il campo  
della form travel\_date non venisse compilato, significa che dovrÃ²  
modificare la stringa sql, e conseguentemente, eliminare il parametro  
travel\_date dall’interno dell’hash ?

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 9, 2007, 8:08pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/4 "2007-12-09T20:08:07Z")

</div>

Lobo C. wrote:

> > > 
> > 
> > ```
> > :include => [:user,:location],
> > 
> > ```
> 
> modificare la stringa sql, e conseguentemente, eliminare il parametro  
> travel\_date dall’interno dell’hash ?

puoi mettere delle condizioni, una cosa del tipo params[“travel\_date”] |  
“2007-11-11”  
non Ã¨ proprio cosÃ¬ ma giusto per capirci

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 10, 2007, 12:45pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/5 "2007-12-10T12:45:09Z")

</div>

ciao ragazzi

qualcuno di voi usa rjb con windows? su linux non da nessun problema,  
perche ci sono le variabili d’ambiente JAVA\_HOME e LD\_LIBRARY\_PATH, ma  
su windows non riesco a fargli “agganciare” la jvm e tutto quello che  
ottengo Ã¨ sempre un tristissimo

can’t create Java VM (RuntimeError)

☹

ciao  
jeko

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 10, 2007, 1:14pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/6 "2007-12-10T13:14:00Z")

</div>

scusate ma ho risolto il problema e posto la soluzione 🙂

la variabile di ambiente JAVA\_HOME va impostata anche su windows, e va  
fato senza punto e virgola alla fine (non era richeisto ma l’avevo fatto  
un po come se fosse il path) e senza virgolette di sorta

inoltre, gli script che usano rjb misteriosamente non mi funzionano se  
eseguiti da scite, ma funzionano solo se richiamati da command line

detto questo, rjb è una ficata.

nel prossimo post (dopo pranzo) vi dico cosa ci faccio

baci  
jeko

* * *

Da: removed\_email\_address@domain.invalid per conto di Stefano G.  
Inviato: lun 10/12/2007 12.41  
A: ruby-it  
Oggetto: Ruby, windows e rjb

ciao ragazzi

qualcuno di voi usa rjb con windows? su linux non da nessun problema,  
perche ci sono le variabili d’ambiente JAVA\_HOME e LD\_LIBRARY\_PATH, ma  
su windows non riesco a fargli “agganciare” la jvm e tutto quello che  
ottengo è sempre un tristissimo

can’t create Java VM (RuntimeError)

☹

ciao  
jeko

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 10, 2007, 3:09pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/7 "2007-12-10T15:09:16Z")

</div>

la mia esigenza era di fare trasformazioni xml+xsl su una piattaforma  
windows

ovviamente ho scelto ruby come linguaggio (quella era la costante 🙂 )

la soluzione ruby xslt su windows Ã¨ scamuffa e poco performante, allora  
ho passato in rassegna varie alternative e sono giunto alla soluzione  
seguendo questi passi

1. installare rjb (ruby-java binding)

gem install rjb

1. scaricare xalan  
[http://mirror.nohup.it/apache/xml/xalan-j/binaries/xalan-j\_2\_7\_1-bin.zip](http://mirror.nohup.it/apache/xml/xalan-j/binaries/xalan-j_2_7_1-bin.zip)

2. impostare la variabile di sistema JAVA\_HOME (per il mio sistema  
C:\Programmi\Java\jdk1.5.0\_03)… ovviamnete il jdk deve essere  
installato e funzionante

lo script che uso Ã¨ stato scopiazzato da  
[http://www.ruby-forum.com/topic/95050](http://www.ruby-forum.com/topic/95050)

ho seguito i consigli del tipo e l’ho adattato in modo da leggere un un  
file xsl statico e una stringa come input xml  
viene restituita una stringa (non ho delegato a java la responsabilitÃ  
di scrivere l’out su disco… )

----------- XalanSupport.rb -------------

require ‘rjb’  
module XalanSupport  
def XalanSupport.load\_Xalan\_libraries  
classpath = ‘’  
[‘serializer.jar’, ‘xml-apis.jar’, ‘xercesImpl.jar’,  
‘xalan.jar’].each do |lib\_name|  
classpath \<\< “#{lib\_name};”  
end  
Rjb::load(“#{classpath}”, [‘-Xmx512M’])  
end  
def XalanSupport.do\_XSL\_transform(instring, xsl\_file\_name)  
XalanSupport.load\_Xalan\_libraries  
string\_reader\_class = Rjb::import(‘java.io.StringReader’)  
string\_writer\_class = Rjb::import(‘java.io.StringWriter’)  
stream\_source\_class =  
Rjb::import(‘javax.xml.transform.stream.StreamSource’)  
stream\_result\_class =  
Rjb::import(‘javax.xml.transform.stream.StreamResult’)  
transformer\_factory\_class =  
Rjb::import(‘javax.xml.transform.TransformerFactory’)  
input\_string\_reader = string\_reader\_class.new(instring)  
output\_string\_writer = string\_writer\_class.new  
source = stream\_source\_class.new(input\_string\_reader)  
result = stream\_result\_class.new(output\_string\_writer)  
transformer\_factory = transformer\_factory\_class.newInstance  
transformer =  
transformer\_factory.newTransformer(stream\_source\_class.new(xsl\_file\_name))  
transformer.transform(source, result)  
result.getWriter.getBuffer.toString  
end  
end

--------- end XalanSupport.rb ------------

lo potete usare cosi

out = XalanSupport.do\_XSL\_transform(input\_xml, ‘test.xsl’)  
File.open(‘test.html’, ‘w’) do |f|  
f.write out  
end

bella!!!  
jeko

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 10, 2007, 4:32pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/8 "2007-12-10T16:32:28Z")

</div>

> 1. scaricare xalan [http://mirror.nohup.it/apache/xml/xalan-j/binaries/xalan-j\_2\_7\_1-bin.zip](http://mirror.nohup.it/apache/xml/xalan-j/binaries/xalan-j_2_7_1-bin.zip)

A proposito, ci stavo giocando giusto oggi, e devo dire che sono un  
po’ deluso. Ha messaggi di errore del tutto incomprensibili e/o  
irrilevanti, e non sono mai riuscito a farlo funzionare. Poi,  
xsltproc mi sembra piu` completo e veloce in ogni caso. Risultato: mi  
tengo xsltproc, anche se qualcosa in Java mi sarebbe stato comodo.

–  
David N. Welton

[http://www.welton.it/davidw/](http://www.welton.it/davidw/)

[http://www.dedasys.com/](http://www.dedasys.com/)

---

<div class="post-metadata">

**Author:** ![lobo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/76d3ee/32.png) [@lobo](https://www.ruby-forum.com/u/lobo)\
**Post date:** [December 10, 2007, 5:02pm UTC](https://www.ruby-forum.com/t/ricerche-sui-campi-di-un-form/122571/9 "2007-12-10T17:02:35Z")

</div>

agree 100% con i messaggi di errore… brutti e incomprensibili…  
purtroppo su win32 mi è difficile usare xsltproc e avrei potuto usare  
msxml con win32 (che alla fine non si comporta per niente male) solo che  
volevo una soluzione piu portabile…

confermo anche che dal punto di vista prestazionale, passare per java  
non è niente di che… anzi… però mi sono divertito a farla in barba a  
tutti i javisti che sono accanto a me che ad ogni modifica devono  
ricompilare tutto 🙂

jeko

* * *

Da: removed\_email\_address@domain.invalid per conto di David W.  
Inviato: lun 10/12/2007 16.31  
A: ruby-it  
Oggetto: Re: [ruby-it] Trasformazioni xml + xsl con Ruby,rjb e un  
pizzico di java (xalan)

> 1. scaricare xalan [http://mirror.nohup.it/apache/xml/xalan-j/binaries/xalan-j\_2\_7\_1-bin.zip](http://mirror.nohup.it/apache/xml/xalan-j/binaries/xalan-j_2_7_1-bin.zip)

A proposito, ci stavo giocando giusto oggi, e devo dire che sono un  
po’ deluso. Ha messaggi di errore del tutto incomprensibili e/o  
irrilevanti, e non sono mai riuscito a farlo funzionare. Poi,  
xsltproc mi sembra piu` completo e veloce in ogni caso. Risultato: mi  
tengo xsltproc, anche se qualcosa in Java mi sarebbe stato comodo.

–  
David N. Welton

[http://www.welton.it/davidw/](http://www.welton.it/davidw/)

[http://www.dedasys.com/](http://www.dedasys.com/)

* * *

Ml mailing list  
removed\_email\_address@domain.invalid  
[http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)
