Newsgroup: it.comp.lang.perl
Titolo: rieccomi, ma sono proprio in crisi...





salve, allora, vi spiego:


sto cercando di fare un guestbook...


il form manda alla pagina ciò:


http://cescone.virtualave.net/gb/guest.cgi?nome=C+e+s+c+o+%21&citta=Carmagnola&email=bo...@cometacom.it&message=sob+sob+non+funzia&B1=Invia


(il link è giusto se volete potete anche provare cliccando da 
qu)


...bhe di questo sono sicuro perchè ho usato get e ho fatto 
copia incolla=)


...tuttavia "guest.cgi" non ne vuole proprio 
sapere...


 


guest è fatto così...:


 


 


 


#!/usr/bin/perl


 


$result = 
"guest.txt";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = 
localtime(time);
$spg = "/";
$spo = ":";
$mon++;
print 
"Content-type:text/html\n\n"; 
print "<body 
background='
http://www.baldessano.roccati.it/carignano/images/Prairie_Wind.JPG
'>";
print 
"<body text=#00FFFF>";


 


read(STDIN, $buffer, 
$ENV{'CONTENT_LENGTH'}); 
@coppie = split(/&/, $buffer); 
foreach 
$coppia (@coppie) { 
 ($nome, $valore) = split(/=/, $coppia); 

        $valore =~ tr/+/ /; 

        $valore =~ 
s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; 

        $HASH{$nome} = $valore; 

        } 


 


open(RESULT, ">>$result");
# nome, 
città, e-mail, ip, ora, giorno, messaggio  ( ricorda che $spg=/ e $spo=: 
)
print RESULT $HASH{'nome'} . "\t" . $HASH{'citta'} . "\t" . $HASH{'email'} 
. "\t" . $ENV{'REMOTE_ADDR'} . "\t" . $hour . $spo . $min . "\t" . $mday . $spg 
. $mon . $spg  . $year . "/t" . $HASH{'message'} 
"\n";
close(RESULT);


 


print 
<<ENDSCRITTA;
<p></p>


<p align="center"><font face="Comic 
Sans MS" color="#80FF00"><big>Grazie $nome,<br>dati inviati 
correttamente</big></font></p>


 


ENDSCRITTA


 


print "</body></html>\n"; 

#FINE!


 


quando mando mi dà HTTP 500 - errore interno del 
server...


 


a, vi devo anche dire che per fare questo guest.cgi mi aveva 
dato una grossa mano GUYA...che mi aveva fatto un ottimo esempio(che 
funzionava...) io a quell'esempio ho solo aggiunto una textarea per inserire i 
commenti!


sobsob! 


che c'è che non va??


 


 


...se qualcuno ha 2 minuti per rispondere grazie 
mille!!!


 


Francesco



 . $mon . $spg . $year . "/t" . $HASH{'message'} "\n"; 
Manca un ',' o un '.' dopo la '}' prima di '"\n"'.
Max

 . $mon . $spg . $year . "/t" . $HASH{'message'} "\n";





Cesco, con la sintassi con la quale hai scritto lo script, il file
"guest.txt" viene aperto con open in rete? Se si, sotto quale dir lo hai
messo? La stessa dello script?
...e mica so' Mandake pe' davero - Gigi Proietti (Febbre da Cavallo)
--
Posted from 
relay1.inwind.it
 [212.141.53.67] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 messo? La stessa dello script?
si... perchč?

eheh.. sarebbe facile.. ma io uso win e nonostante apache web server non ho
ancora ben capito alcune cose...
x esempio come far capire allo script che voglio mandargli anche delle
variabili... (x esegiorli di solito uso dzsoft che fa da editor e da runner)
linux e il mio pc purtroppo non vogliono convivere...

Perchè a me non lo apre. Io apro il file .txt in scrittura sul server con
open (FILE,">test.txt"); ma il file non viene scritto.
Ma allora, cosa può essere? Mi puoi aiutare?
Ciao.
--
Posted from 
IDENT:ro...@planetsec.com
 [194.20.232.117] 


Non ho capito il nonostante... usi apache o no? Se vuoi lavorare seriamente
hai bisongo di Apache sulla tua macchina per provare gli script come sul
server di produzione.
Se lo usi cerca dove mette error_log in winzozz e vallo a leggere.
Comunque se tu apri una finestra DOS vai nella dir dove essere eseguito da
Apache e dai perl nomedelloscript, deve funzionare correttamente (se lo
script è a posto).
Al limite fai perl 
mioscript.pl
 > prova.txt, poi apri prova.txt con il
blocco note e vedi l'html che ti ha generato (se fosse corretto prova ad
aprire prova.txt con Explorer o Netscape).
Metti sempre -w nella shebang così l'interprete perl ti segnala anche le
schifezze non mortali.
Alla prossima
P.S. perché Linux ed il tuo PC non possono convivere?

..linux ha "qualche" problema con la mia scheda video.. diciamo che della re
d hat non sono neanche riuscito a far partire l'installazione grafica... di
gnome non ne parliamo!
ciao

prova a usare
$file="test.txt";
open (file, ">>$file");
...spero funzioni
ciao
Francesco

E' capitato anche a me con il pc più vecchio che ho... ho comprato una
scheda compatibile... vale proprio la pena di fare l'investimento.

scusa, ma non ti ho mandato quello che cercavo perchè non lo trovavo...
questa risposta è un po' + completa!
# This creates a new file for output.  If the file already exists,
# the old file is deleted.
open(FILE, '>filename');
# This appends output to an existing file.  If the file does not exist,
# it is created.
open(FILE, '>>filename');
# This opens a file for reading.
open(FILE, 'filename');
# This starts a program and makes output through FILE go to
# that program's STDIN.
open(FILE, '|prog');
# This starts a program and makes input through FILE come from
# that program's STDOUT
open(FILE, 'prog|');