Newsgroup: it.comp.lang.perl
Titolo: Non riesco ad aprire un file esterno...

Ho salvato questo script con il nome 
open.pl
 e l'ho richiamato, ma il file
non è apparso nel browser.
Che pensate abbia sbagliato?
#!/usr/local/bin/perl
print <<EOF;
<html>
<head>
<title>
Ecco il file...
</title>
</head>
<BODY BGCOLOR="#FFFFFF">
<H2>File esterno...</H2>
<p>
EOF
;
open (ARTICLE, "/htdocs/art1.txt"); # forse ho sbagliato l'url?
while (<ARTICLE>)
{
    print "$_";
}
print "\n<//p>\n";
print <<EOF;
</BODY>
</HTML>
EOF
;
exit;
ho applicato il permesso 755 allo script collaocato in cgi-bin e 644 al file
da aprire txt. che si trova in htdoc.
che ne pensate?

open (ARTICLE, "/htdocs/art1.txt"); # forse ho sbagliato l'url?
Attenzione: qui non devi mettere una URL ma il path del file sull'hard
disk. ;) Probabilmente sara` un cosa che somiglia piu` o meno a:
/usr/home/paolo/htdocs/art1.txt
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
ICQ# 76660101
==> Sito di it.comp.lang.perl: 
http://www.perl-it.org
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

 open (ARTICLE, "/htdocs/art1.txt"); # forse ho sbagliato l'url?
Sě, devi dare il percorso relativo dalla cartella dello script a quella del txt;
se, come immagino che sia, lo script č in [...]/apache/cgi-bin/
open.pl
 ed il txt
č in [...]/apache/htdocs/art1.txt , il percorso giusto č:
open (ARTICLE, "../htdocs/art1.txt");
Buon lavoro

Gabriele Baldi wrote:

Siamo sicuri che la cwd del processo cgi sia quella dove risiede 
fisicamente lo script e non la ServerRoot (o la DocumentRoot) di apache?
-- 
Saluti,
Giancarlo

 Michele.
ho corretto cosě,
...........
<p>
EOF
;
open (ARTICLE, "../htdocs/art1.txt");
while (<ARTICLE>)
{
    print "$_";
}
print "\n<//p>\n";
print <<EOF;
</BODY>
</HTML>
EOF
..............
ma funziona solo via Telnet. Nel browser l'art.1 non appare - In locale sul
PC non ho provato...

 Buon lavoro
Grazie!
Ho cosě corretto lo script
<p>
EOF
;
open (ARTICLE, "../htdocs/art1.txt");
while (<ARTICLE>)
{
    print "$_";
}
print "\n<//p>\n";
print <<EOF;
</BODY>
</HTML>
EOF
purtroppo perň il file viene aperto e stampato solo via Telnet, mentre nel
Browser non compare nulla! Come mai?

 Browser non compare nulla! Come mai?
Che sia il classico problema della mancanza di
print "Content-Type: text/html\r\n\r\n";
all'inizio dello script?
O forse ho visto male.

 Lo leggo ora... che te ne fai di \r? \n\n va benone.
La stringa l'ho provata eoni fa e poi è rimasta sepolta tra le mie
librerie...
Se ben ricordo, avevo (e ho tuttora) un vecchio Apache per testare
in loopback i miei siti... e appunto l'httpd era piuttosto schizzinoso
in fatto di header http... mi ricordo che se scrivevo Content-type
mi dava un internal server error... 
oppure mi sto ricordando male... :)

 O forse che l'utente del web server non ha diritti per il percorso?
ho applicato il permesso di esecuzione per per lo script 
open.pl
, quindi 755
e di lettura: 644 al file txt. Ho sbagliato qui?
Grazie P-

Ho corretto i due errori che avevo fatto e finalmente il file si apre!
Grazie a tutti per l'aiuto :-)
#!/usr/local/bin/perl
print <<EOF;
print "Content-Type: text/html\n\n"; # ho aggiunto questa linea
<html>
<head>
<title>
Ecco il file...
</title>
</head>
<BODY BGCOLOR="#FFFFFF">
<H2>POESIE SCELTE...</H2>
<p>
EOF
;
open (ARTICLE, "../htdocs/art1.txt"); # ho aggiunto la patch corretta
while (<ARTICLE>)
{
    print "$_"; # per quanto ne so questa variabile potrebbe essere omessa,
                       # ma l'ho messa lo stesso
