[Tech] Semplice data entry

Franco Bagnoli franco.bagnoli@unifi.it
Lun 18 Apr 2005 22:21:19 CEST


Giancarlo Martini wrote:
> Franco Bagnoli wrote:
> 
>>
>> a parte le battute: una maniera è effettivamente di usare un editor di 
>> testo e scrivere un file yaml, poi lo converti con poche righe di 
>> perl/python/ruby/ecc.
>>
>> Se vuoi dei form con controllo di quello che è stato inserito, scrivi 
>> un cgi nel linguaggio che vuoi (ovviamente perl ;) e fai il controllo 
>> a livello javascript (e poi sul server)
>>
>>
> C'e' qualcosa che rassomigli al vecchio dbIII o alle vecchie versioni 
> del foxpro ?
> Ciao e grazie
> 

non so, ma l'approccio CGI è molto semplice. scrivi una pagina html
con una form, (se vuoi non metti né controlli javascript né altro)
e dal cgi salvi i dati sul file.

eccoti qui un programmillo che fa tutto: server web e data entri


#!/usr/bin/perl

use Net::HTTPServer;

my $server = new Net::HTTPServer(port=>5000,
                                docroot=>"/var/www/site");
$server->RegisterURL("/",\&test);

$server->Start();

$server->Process();  # Run forever

sub test {
   my $req = shift;             # Net::HTTPServer::Request object
   my $res = $req->Response();  # Net::HTTPServer::Response object
   my $nome1= $req->Env("nome1");
   my $nome2= $req->Env("nome2");

   if ($nome2) {
     open OUT, ">>data.txt";
     print OUT "$nome1, $nome2\n";
     close OUT;
   }

$form = <<fine;
<html>
  <head>
   <title>Input form</title>
  </head>
  <body>
    <form>
     <table>
      <tr><td>nome: </td><td><input type="text" name='nome1' /> </td></tr>
      <tr><td>cognome: </td><td><input type="text" name='nome2' /> 
</td></tr>
      <tr><td colspan="2"><input type=submit value="inserisci"></td></tr>
     </table>
    </form>
  </body>
</html>
fine
    $res->Print($form);
    return $res;

}

istallati NET::HTTPServer

(cpan install NET::HTTPServer)

lancia

perl serverino.pl &

e collegati alla porta 5000 del tup pc. i dati vanno a finire in data.txt

(p.s. come vedi il server può anche "servire" delle pagine statiche, per 
esempio di help).

-- 
Franco Bagnoli <franco.bagnoli@unifi.it>
Dipartimento di Energetica & Centro Dinamiche Complesse
Universita' di Firenze, via S. Marta, 3 I-50139 Firenze, Italy.
Tel. +39 0554796422, fax: +39 055471787



Maggiori informazioni sulla lista flug-tech