Newsgroup: it.lavoro.professioni.webmaster
Titolo: caricare delle immagini ed un foglio di stile con uno script CGI

Salve, ho fatto uno script CGI in C che mi crea una pagina HTML nella
quale ci sono da caricare delle immagini ed un foglio di stile. Ho
riscontrato il problema di non avere i diritti di accesso al foglio di
stile ed alle immagini. Sia le immagini che il foglio di stile si trovano
nella cartella htdocs. Hanno solo permesso di lettura per il gruppo e per
gli altri. Non capisco dove sia il problema.
Francesco

Francesco ha scritto:

Scusa, non so come funzioni il tuo script CGI, ma se generi un file html 
che include le immagini e il file css non credo che tu abbia bisogno di 
particolari permessi. Forse hai solo sbagliato il percorso delle inclusioni?
O forse ho capito male e le immagini e il css li devi modificare?
Nené
-- 
www.netbitstudio.it
creazione e realizzazione di siti internet,
cd/dvd multimediali e grafica.

 Nené
Ecco il messaggio che ricevo dal server Apache:
   Non disponi dei permessi necessari per accedere all'oggetto
   richiesto, oppure l'oggetto non può essere letto dal server.
Il percorso del file css è il seguente "/stile/stile_menu.css" ed è
relativo ad htdocs, il percorso delle immagini è il seguente :
"/nomefile1.jpg" ecc. sempre relativo ad htdocs.
Ma lo script ha sempre funzionato, ed infatti se redirigo l'output dello
script in un file html, ad esempio come ./mioscript.cgi>pagina.html, non
ci sono problemi.
Francesco

 ci sono problemi.
Ma a te non interessa semplicemente generare il file html (dove quindi 
funziona?). Non capisco bene quando ti da l'errore, né cosa vuoi fare in 
particolare.


 ha scritto:

Aspetta, non sembra un problema di file inclusi ma proprio di permessi di 
esecuzione del file.
Prima di tutto controlla con che utente stia girando apache (di solito usa 
l'utente omonimo) e se questo utente può arrivare alla cartella con il tuo 
script e possa eseguirlo.
Lanciarlo da riga di comando non basta perché lo stai lanciando con il tuo 
utente, non con quello usato da apache.


LO script funziona su un web server Apache. Quando lo faccio eseguire come
http://miodominio.com/script.cgi
, ad esempio, lo script cgi invia l'output
al browser generando la pagina html con i suoi tag. E' quello che fa asp,
php, ecc.
Francesco

 utente, non con quello usato da apache.
La cosa strana è che un altro file di testo, "menu.txt", viene
correttamente letto dallo script, quindi non credo sia un problema di
Apache.
Ad ogni modo allego lo script in C:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "html_lib.h"
int main(void)
{
printf("Content-Type: text/html\r\n\r\n");
html_start();
head_start();
link("stylesheet","text/css","prova","/stile/stile_menu.css");
title("Fantacalcio");
head_end();
body_start();
//prima tabella
table_start("100%","80","","1");
		tr_start();
		td_start("","td_logo");
load_image("lega.jpg");
		td_end();
		td_start("","td_logo2");
load_image("/Fantacalcio.jpg");
		td_end();
		td_start("","td_logo");
load_image("/lega.jpg");
		td_end();
		tr_end();
table_end();
//seconda tabella
table_start("100%","","","1");
		tr_start();
		td_start("40%","td_menu");
		//printf("<ul class=\"menu4\">\n");
		crea_menu("/menu2.txt");
		//printf("</ul>");
		td_end();
		td_start("35%","td_centrale");
		p_start("center");
		printf("Colonna centrale\n");
		td_end();
		p_end();
		td_end();
		form_start("login","POST","elabora.cgi");
		td_start("25%","td_destra");
		p_start("left");
		printf("Username");
		input("text","Username","","");
		p_end();
		p_start("left");
		printf("Password");
		input("password","Password","","");
		p_end();
		p_start("center");
		input("submit","conferma","OK","");
		input("reset","cancella","CANCELLA","");
		p_end();
		td_end();
		tr_end();
table_end();
//terza tabella
table_start("100%","80","","1");
		tr_start();
		td_start("100%","td_finale");
		printf("Copyright cccccccc");
		td_end();
		tr_end();
table_end();
body_end();
html_end();
}
e la pagina generata:
<html>
<head>
<title>Hello, world</title>
<link rel="stylesheet" type="text/css" href="/stile/stile_menu.css">
</head>
<body class="body">
<table width="100%"  height="80" align="" border="1">
<tr>
<td width="100%" class="td_menu">
</td>
</tr>
</table>
<table width="100%"  height="" align="" border="1">
<tr>
<td width="15%" class="td_menu">
<table>
<tr>
<td>
<a href="index.php">Home</a>
</td>
</tr>
<tr>
<td>
<a href="ricerca.php">Ricerca</a>
</td>
</tr>
<tr>
<td>
<a href="modifica.php">Modifica</a>
</td>
</tr>
<tr>
<td>
<a href="cancella.php">Cancella</a>
</td>
</tr>
<tr>
<td>
<a href="seleziona.php">Seleziona</a>
</td>
</tr>
<tr>
<td>
<a href="stampa.php">Stampa</a>
</td>
</tr>
</table>
</td>
<td width="50%" class="td_centrale">
Colonna centrale
</td>
<td width="35%" class="td_destra">
Colonna finale
</td>
</tr>
</table>
<table width="100%"  height="80" align="" border="1">
<tr>
<td width="100%" class="td_finale">
</td>
</tr>
</table>
</body>
</html>
Francesco

 link("stylesheet","text/css","prova","/stile/stile_menu.css");
Il tuo cgi dove si trova? In htdocs o in un'altra directory? Com'e'
impostato lo ScriptAlias?
Tieni presente che potresti avere due directory distinte:
/cgi-bin
/htdocs
'bye

 
LO script si trova in /cgi-bin, i dati si trovano in /htdocs
Francesco