Uso webrick in locale per testare gli script ruby (in particolare per
servire pagine .rhtml con eruby)
Quando chiamo la libreria cgi mi dà errore, precisamente va in “offline
mode”.
Potete dirmi come risolvere?
Grazie mille.
Uso webrick in locale per testare gli script ruby (in particolare per
servire pagine .rhtml con eruby)
Quando chiamo la libreria cgi mi dà errore, precisamente va in “offline
mode”.
Potete dirmi come risolvere?
Grazie mille.
Che vuol dire chiamare la libreria cgi?
Allega il log di sviluppo o dai qualche indicazione in più.
LG
Luca G. wrote:
Che vuol dire chiamare la libreria cgi?
Allega il log di sviluppo o dai qualche indicazione in più.LG
Scritto il seguente file .rhtml:
<% require ‘cgi’
cgi = CGI.new %>
, avvio webrick e tento di accedere alla pagina.
Comincia un caricamento senza termine della pagina e nel terminale (dove
ho avviato webrick) mi esce scritto:
(offline mode: enter name=value pairs on standard input)
Roberto De Ioris wrote:
Il giorno mar, 24/07/2007 alle 15.24 +0200, name surname ha scritto:
<% require ‘cgi’
cgi = CGI.new %>, avvio webrick e tento di accedere alla pagina.
Comincia un caricamento senza termine della pagina e nel terminale (dove
ho avviato webrick) mi esce scritto:(offline mode: enter name=value pairs on standard input)
Ma hai configurato webrick per eseguire in modalita’ cgi gli script ?
Dall’errore che riporti sembra proprio di no
Allora, io ho solo ripreso da un manuale ruby ed eseguito questo script
per avviare webrick:
require ‘webrick’
class ERubyHandler < WEBrick::HTTPServlet::ERBHandler
ERuby = “/usr/bin/eruby”
def initialize(server, name)
super
@script_filename = name
end
def do_GET(req, res)
IO.popen("#{ERuby} #{@script_filename}") do |io|
res.body = io.read
end
res[“content-type”] = “text/html”
end
end
WEBrick::HTTPServlet::FileHandler.add_handler(“rhtml”, ERubyHandler)
s = WEBrick::HTTPServer.new(:Port => 10000)
s.mount("/", WEBrick::HTTPServlet::FileHandler, “/var/www/eruby/”,
{:FancyIndexing => true})
trap(“INT”){ s.shutdown }
s.start
Puoi dirmi come procedere a questo proposito?
Il giorno mar, 24/07/2007 alle 15.24 +0200, name surname ha scritto:
<% require ‘cgi’
cgi = CGI.new %>, avvio webrick e tento di accedere alla pagina.
Comincia un caricamento senza termine della pagina e nel terminale (dove
ho avviato webrick) mi esce scritto:(offline mode: enter name=value pairs on standard input)
Ma hai configurato webrick per eseguire in modalita’ cgi gli script ?
Dall’errore che riporti sembra proprio di no
Il giorno mar, 24/07/2007 alle 15.55 +0200, name surname ha scritto:
def initialize(server, name)
endWEBrick::HTTPServlet::FileHandler.add_handler(“rhtml”, ERubyHandler)
s = WEBrick::HTTPServer.new(:Port => 10000)
s.mount("/", WEBrick::HTTPServlet::FileHandler, “/var/www/eruby/”,
{:FancyIndexing => true})
trap(“INT”){ s.shutdown }
s.start
Per eseguire uno script in modalita’ CGI e’ necessario un ambiente CGI,
che di default non hai sotto webrick (e francamente non so se esista un
handler che lo crei visto che sarebbe abbastanza ridondante)
Tutto quello che ti serve te lo fornisce l’handler ERB che mette tutte
le informazioni in 2 variabili:
meta_vars e query
se vuoi quindi leggere i parametri di una form ti basta un
query[“pippo”]
mmm, se potessi farmene un esempio, anche breve (basta che sia compreso
di avvio del webrick) te ne sarei molto grato
cmq… come fai a sapere che devo leggere le variabili dell’url?
Il giorno mar, 24/07/2007 alle 17.15 +0200, name surname ha scritto:
mmm, se potessi farmene un esempio, anche breve (basta che sia compreso
di avvio del webrick) te ne sarei molto gratocmq… come fai a sapere che devo leggere le variabili dell’url?
Beh e’ l’unico motivo che mi viene in mente per cui potessi aver bisogno
di includere il modulo cgi in erb
Comunque il tuo webrick va bene come e’ adesso, ora ti basta
semplicemente leggere il contenuto della variabile ‘query’ con
query[nomecampo] Ex. query[‘myfield’] per accedere ai valori passati da
una form:
myfield e’ uguale a: <%=query[‘myfield’]%>
Roberto De Ioris wrote:
Il giorno mar, 24/07/2007 alle 17.15 +0200, name surname ha scritto:
mmm, se potessi farmene un esempio, anche breve (basta che sia compreso
di avvio del webrick) te ne sarei molto gratocmq… come fai a sapere che devo leggere le variabili dell’url?
Beh e’ l’unico motivo che mi viene in mente per cui potessi aver bisogno
di includere il modulo cgi in erbComunque il tuo webrick va bene come e’ adesso, ora ti basta
semplicemente leggere il contenuto della variabile ‘query’ con
query[nomecampo] Ex. query[‘myfield’] per accedere ai valori passati da
una form:myfield e’ uguale a: <%=query[‘myfield’]%>
Ah, capito. Pensavo l’avessi correlato con una discussione che ho aperto
qualche giorno fa
Comunque avevo già provato a fare così ma niente… Non riconosce la
variabile query:
undefined local variable or method `query’ for main:Object (NameError)
Semplicemente ho avviato webrick con lo script mostrato e inserito la
riga di codice che mi hai detto in file.rhtml
Ciao, io uso questo codice e non da nessun tipo di errore, prova a
confrontarlo.
(Nella mia ubuntu ho dovuto installare eruby)
ciao marco
require “webrick”
class ERubyHandler < WEBrick::HTTPServlet::ERBHandler
ERuby = “/usr/bin/eruby”
def initialize(server, name)
super
@script_filename = name
end
def do_GET(req, res)
IO.popen(“#{ERuby} #{@script_filename}”){|io|
res.body = io.read
}
res[“content-type”] = “text/html”
end
end
WEBrick::HTTPServlet::FileHandler.add_handler(“rhtml”, ERubyHandler)
s = WEBrick::HTTPServer.new(:Port=> 2000)
s.mount(“/ruby”, WEBrick::HTTPServlet::FileHandler,
“/common//webserver_ruby”, true)
trap(“INT”){ s.shutdown }
s.start
On 7/24/07, Roberto De Ioris [email protected] wrote:
…
–
Dr. Marco Forlin
cell: 349 5322671
email: [email protected]
harloc wrote:
se chiamo query[‘nomedelcamponellaform] la risposta di webrick e’ non
riconosciuto query, mentre se faccio stampare @query mi risponde con nil
nil
anche se il parametro respitutito e’
http://…/risposta.rhtml?username=ciccio.
Quello che succede a me
Scusate per il post precedente, ma anch’io ho lo stesso problema:
se chiamo query[‘nomedelcamponellaform] la risposta di webrick e’ non
riconosciuto query, mentre se faccio stampare @query mi risponde con nil
nil
anche se il parametro respitutito e’
http://…/risposta.rhtml?username=ciccio.
Qualche aiuto?
ciao marco
On 7/25/07, harloc [email protected] wrote:
…
–
Dr. Marco Forlin
cell: 349 5322671
email: [email protected]
Scusate se rompo…
ho trovato un’altro script per lanciare un webserver ed ora il problema
è
che il codice ruby viene inviato correttamente alla console, e non al
browser.
ecco lo script:
require ‘webrick’
include WEBrick
def start_webrick(config = {})
config.update(:Port => 8080)
config.update(:MimeTypes => {‘rhtml’ => ‘text/html’})
server = HTTPServer.new(config)
yield server if block_given?
[‘INT’, ‘TERM’].each {|signal|
trap(signal) {server.shutdown}
}
ruby_dir = File.expand_path(‘/home/harloc/webserver_ruby’)
server.mount(“/home/harloc/webserver_ruby”, HTTPServlet::ERBHandler,
ruby_dir)
server.start
end
start_webrick(:DocumentRoot => ‘/home/harloc/webserver_ruby’)
Ecco invece le due pagine .rhtml:
prova.rhtml
eRuby Test <form name="dati" action="risposta.rhtml">
Please enter your username: <input type="text"
name=“username”>
risposta.rhtml
eRuby Test<%=
if (query[‘username’] = “ciccione”)
puts “ok”
end
%>
Grazie,
marco
On 7/26/07, name surname [email protected] wrote:
…
–
Dr. Marco Forlin
cell: 349 5322671
email: [email protected]
Ho lo stesso problema che avete tutti voi…non mi funziona con la
libreria cgi!
Ciao potresti postare tutto il codice per farmi capire meglio, a me non
funziona…
grazie,
ciao marco
On 8/5/07, Pino S. [email protected] wrote:
Risolto cosi:
require 'cgi' > cgi=CGI.new > var = cgi.params['nome_variabile']
–
Dr. Marco Forlin
cell: 349 5322671
email: [email protected]
Pino S. wrote:
Ho lo stesso problema che avete tutti voi…non mi funziona con la
libreria cgi!
Risolto cosi:
require 'cgi'
cgi=CGI.new
var = cgi.params['nome_variabile']
harloc wrote:
Ciao potresti postare tutto il codice per farmi capire meglio, a me non
funziona…
grazie,
ciao marcoOn 8/5/07, Pino S. [email protected] wrote:
Risolto cosi:
require 'cgi' >> cgi=CGI.new >> var = cgi.params['nome_variabile']
–
Dr. Marco Forlin
cell: 349 5322671
email: [email protected]
Per prendere ad esempio la variabile di nome “sezione” faccio cosi:
require ‘cgi’
cgi=CGI.new
var=cgi[“sezione”]
print “Content-type: text/html\r\n\r\n”
print “la variabile sezione vale#{var}”
oppure
var=cgi.params[“sezione”].at(0) if cgi.has_key? “sezione”
se i dati arrivano da un form con type=mulipart/form-data faccio così:
section_id = cgi[“section_id”].read.to_s
Sinceramente non so perchè, ci ho sclerato molto e mo mi funziona sempre
e non solo su webrick
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs