Newsgroup: it.lavoro.professioni.webmaster
Titolo: help: incluce file html in altro file html

ciao a tutti
volevo chiedervi un aiuto per un problema che vorrei risolvere e vado
subito sul caso concreto:
ho un file, chiamiamolo template.html, con tutte le impostazioni di
layout.
poi ho alcuni file, chiamiamoli testo1.html testo2.html test3.html ecc.
ecc., e vorrei fare in modo che linkado su questi ultimi, questi
carichino le impostazioni di layout da template.html.
cosa devo inserire nel codice di template.html, pagina con una tabella e
i file test#.html dovrebbero essere caricati all'interno di una celletta
di questa? e cosa devo scrivere in quelli per poter caricare prima del
testo e dopo il testo, anche questo in un tabella in ogni caso, perché
linkando questi venga caricato il layout di template.html?
premessa, non ho un webserver che accetta php, e so che quello mi
aiuterebbe tantissimo e non voglio usare asp perché la compatibilità
deve essere con tutit i browser e con tutte le piattaforme. so che si
può fare in HTML perché una volta l'ho visto, solo che la persona che
l'aveva fatta non ho più come raggiungerla e ricontattarla... e vi parlo
di 5 anni fa!
Sperando che la mia richiesta sia chiara e qualcuno di voi mi possa dare
una mano, vi ringrazio tutti...
ciao
Max

 di questa?
Delle due l'una:
- ti armi di un database e fai degli include lato server (scelta migliore)
- trasformi il template (testata, fine pagina ed altri elementi comuni) in 
JavaScript ed includi quelli nei documenti test#.html
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

 so che si può fare in HTML perché una volta l'ho visto,
A me non risulta.
[cut]
Ciao
--
http://www.diodati.org/w3c/html401/index/elements.html
http://dmoz.org/World/Italiano/Salute/Degli_Animali/

 - ti armi di un database e fai degli include lato server (scelta migliore)
Non mi pare strettamente necessario un db. IMHO bastano semplici file (anche
solo testuali: .txt, .inc., ecc.).
No?
Ciao

può fare in HTML perché una volta l'ho visto
Veramente ASP in se non e' affatto incompatibile con browser diversi
da IE, gira sul server quindi il client usato e' irrilevante.
Che poi spesso le pagine ASP possano essere visibili solo con IE,
dipende dall'incapacita o non volonta di chi le sviluppa nel far
generare ad ASP un codice compatibile con ogni browser.
Se pero' tu hai voglia di farlo puoi benissimo fare siti visibili con
ogni browser.
In HTML invece non e' possibile includere file come vuoi fare tu, a
meno forse di non usare qualche trucchetto che ha proprio l'effetto di
ridurre la compatibilita'.
-- 
Sayonara
Massy

No?
Si infatti e' cio' che ho fatto per alcuni siti.
Una serie di file .INC (o .TXT e' indifferente) contiene il testo di
ciascuna pagina, mentre la struttura e i vari menu' sono in una pagina
.ASP (o .PHP secondo cio' che supporta il server) che di volta in
volta va ad includere il file col testo cercato.
-- 
Sayonara
Massy

 layout.
Gli include lato server sono attivi/attivabili? Usa quelli.
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

 piattaforme. so che si può fare in HTML perché una volta l'ho visto,
chi ti ha detto una sciocchezza simile? tutte le tecnologie lato server non
hanno niente a che vedere con i client... per essere compatibile con i vari
browser basta scrivere codice HTML standard...
per l'inclusione esiste la possibilita' di utlizzare l'estensioen shtml.. ma
dubito che qualhe hoster continui a sostenerla... per motivi di sicurezza...
quindi l'alternativa e' l'utilizzo di tecnologie serv-side come ASP, PHP,
ASP.NET
 per citare le piu' utilizzate...
ciao
--
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
I veri problemi della vita saranno sicuramente cose che non t'erano mai
passate per la mente.

 per motivi di sicurezza...
Per esempio, quali?

dubito che qualhe hoster continui a sostenerla... per motivi di sicurezza...
Scusa se intervengo, ma praticamente tutti gli hoster americani che conosco
offrono SSI con l'estensione shtml.
Tutto ha sempre funzionato a dovere. 
Anche per Seeweb e' la stessa cosa.
A quali problemi di sicurezza ti riferisci?
Ciao!
Maurizio Mascheroni
-------------------------
Maurizio Mascheroni
http://www.idealmente.com
in...@idealmente.com
-------------------------

ciao
ecco, vero, ricordo infatti l'shtml.
ma al di là dell'estensione che codice dev digitare nei file?
grazie comunque a tutti per le risposte!
Max


 Per esempio, quali?
non so di preciso perche' mai utilizzato, pero' qualche tempo fa si parlava
di eventuali buchi lasciati aperti da questo tipo di estensione... ed
infatti moltissimi hoster hanno segato questo tipo di pagine web *dinamiche*


ma al di là dell'estensione che codice dev digitare nei file?
<!-- #include file = "nomefile.html -->
vediti da qualche parte la differenza tra include file e include
virtual, che non l'ho mai capita, e anzi, se qualcuno la spiega...
-- 
dipende

 virtual, che non l'ho mai capita, e anzi, se qualcuno la spiega...
Nell'implementazione di Apache:
File = usi un percorso relativo (che quindi non puo' iniziare con '/') 
alla directory corrente (quella che contiene il file SHTML) e che non 
puo' fare riferimento alla cartella precedente (../). In breve: puoi 
includere solo file presenti in sottocartelle, ma del file system reale 
del disco del server.
Virtual = usi un URL (non un percorso del file system del server) 
relativo a quello del documento SHTML corrente, e puo' iniziare con '/' 
(in questo caso fa riferimento alla cartella principale del sito, non 
del file system).

  web *dinamiche*
Vabe', si', dinamiche, e' vero... poi voglio vedere chi e' che si fa 
siti dinamici in SSI... a parte gli includes, per tutto il resto come 
tecnologia mi pare un po' limitata.

 virtual, che non l'ho mai capita, e anzi, se qualcuno la spiega...
Hehe in effetti...
Cmq da come l'ho capita io (anche se in teoria č una spiegazione
semplicistica, ma mi pare che sia cosě):
<!-- #include file = "nomefile.html" -->
oppure
<!-- #include file = "../nomefile.html" -->
insomma col percorso relativo.
Invece
<!-- #include virtual= "/nomefile.html" -->
ovvero col percorso assoluto.


, 
raffaele....@tiscali.it
 says...

Si, ma lui parla di una pagina "template.html", quindi presumo che sia una 
pagina HTML statica e che non ci sia la possibilita' di fare scripting 
server-side.
Ecco perche' gli do due input su come fare gli include: sia client- che 
server- side.
E cmq il database e' IMHO sempre la scelta migliore, meglio aggiornare con un 
CMS che mantenere una caterva di file nella cartella.


 A me non risulta.
<SCRIPT SRC="/inc/incluso.js"></SCRIPT>
incluso.js:
document.write("Ciao sono un testo incluso in tutte le pagine con 
javascript");


 tecnologia mi pare un po' limitata.
molto limitata visto che supporta solo l'SSI


 CMS che mantenere una caterva di file nella cartella.
OK

 dynamic content to pages, without doing a lot of extra work.
http://httpd.apache.org/docs/howto/ssi.html

 javascript");
Proprio tutte, no. Tutte tranne le pagine 'servite' a motori di ricerca 
e a tutti i client che non supportano JavaScript.

, 
macg...@despammed.com
 says...

Vogliamo pignoleggiare?
Incluso in tutte e' incluso in tutte. E questo e' quanto serviva.
Il resto e' il limite normale dell'inclusione lato client, nulla da eccepire, 
ma se uno non puo' fare include lato server o si accontenta di JavaScript o 
non fa proprio li include.
Salvo poi che non andrei ad includere (client o server che sia) i contenuti, 
ma solo il "contorno", quindi i motori comunque vedono i contenuti (che li 
"leggano" e' un altro conto).


 exec e qualche altra istruzione oltre alla direttiva 'include'.
certo... ma utilizzare questo sistema solo per alcune cose mi sembra inutile
visto che tutti gli hoster mettono a disposizione la possibilita' di gestire
pagine dinamiche con sistemi piu' sofisticati... ormai tutti hanno almeno
php e asp... e fra poco anche 
asp.net
 che non costa nulla...
bai


 Il resto e' il limite normale dell'inclusione lato client
Magari l'OP non lo sapeva.

 certo... ma utilizzare questo sistema solo per alcune cose mi sembra inutile
Se ho bisogno realizzare delle applicazioni uso un linguaggio adatto, se 
ho solo bisogno di mantenere dei ritagli di codice  (es. banale: 
intestazione e pie' di pagina) separati dalle pagine vere e proprie per 
semplificare certe operazioni di aggiornamento uso SSI.
Questo non per l'eventuale costo dell'hosting con PHP (l'ISP che uso di 
solito lo fornisce incluso nel prezzo) ma per altri motivi.
Per esempio l'uso di PHP o ASP rende non 'cacheabili' le pagine, perche' 
spariscono i validatori Last-Modified, ETag e Content-Length, e ASP 
addirittura aggiunge 'Cache-Control: private' a tutte le pagine.
Questo comporta spreco di banda e lentezza.
Per ristabilire le funzionalita' della cache e' necessario ulteriore 
lavoro e tempo.
Anche SSI per default ha questo effetto, ma ristabilire la cacheabilita' 
per tutti i file del sito e' semplice e non e' nemmeno necessario 
modificarli (XBitHack).

 e ASP addirittura aggiunge 'Cache-Control: private' a tutte le pagine.
non e' proprio cosi'... anzi... devi settare tu alcuni parametri per non far
*cachare*... asp non aggiunge proprio nulla se non con win2000 di default ti
impostra il buffer a true... ma questo in generale ottimizza le
prestazioni... perche' spedisce i pacchetti tutti insieme...
ciao



lo so, in un sito dove ho lavorato utilizzavo un CMS, prima in Zope e poi rifatto
da zero in Php.
questa volta, essendo una cosa mie e per un amico volevo provare a riprendere
questa cosa che come dicevo avevo già visto fare. se riesco... !!!
grazie ancora di tutto
Max


 semplificare certe operazioni di aggiornamento uso SSI.
[CUT]
esattamente quello che mi serve!
intestazione e piè di pagina in una tabella in template.html
le pagine sono separate e devono essere in html con imamgini, testo, link ecc.
ecc. ecc.
Max

ciao
questo va in template.html, ma mi richiama un solo file. per fare in
modo che il nome non sia prefissato sai come posso fare?
inoltre, nei file che devono richiamare template.html, invece?
grazie ancora
Max


 Magari l'OP non lo sapeva.
What's "OP"?


inoltre, nei file che devono richiamare template.html, invece?
<!-- #include file = "template.html" -->
-- 
dipende

 What's "OP"?
O' Pignolo :)
Oppure 'original poster', quello che ha postato la domanda originale.

 dipende

no!
allora la vedo dura...  il meglio che mi viene in mente e manco sono
sicuro che funzioni è che nel file "principale" metti una cosa del
genere:
<!-- #include file = prestanome.html -->
prestanome.html sarà un file che contiene solo la riga:
<!-- #include file = fileincludevero.html -->
a questo punto se vuoi cambiare il file di inclusione basta che
uploadi solo la nuova versione di prestanome.html, ma a questo punto
tanto vale che modifichi e riuploadi il file principale.
-- 
dipende

istruzioni include sono processate *prima* di quelle di scripting.
In PHP basta una riga sola:
<?PHP include ($page); ?>
"page" e' il parametro che viene passato nell'URL
pagina.php?page=pagina01.inc
Volendo poi si puo' semplificare un po' l'URL se le pagine sono tutte
nella stessa directory e hanno tutte la stessa estensione:
<?PHP
	$incpage = "pages/";
	$incpage .= $page;
	$incpage .= ".inc";
 
	include ($incpage);
?>
In ASP invece e' effettivamente un casino, per fare la stessa cosa ci
vuole un po' di piu', ma si riesce lo stesso.
Se il server lo supporta, puoi usare tranquillamente questo, dato che
come ti e' gia' stato detto, di per se non genera alcuna
incompatibilita'.
<% 
	INC_pagina = Request.QueryString("page")
	INC_file = "pages/" & INC_pagina & ".inc"
	INC_include=Server.MapPath(INC_file)
 
	Set FileObject=CreateObject("Scripting.FileSystemObject")
	Set fileOBJ=FileObject.OpenTextFile(INC_include,1,true)	
	INC_outstring = fileOBJ.ReadAll
	fileOBJ.Close
	response.write INC_outstring
%>
C'e' una differenza importante tra i due pero', in PHP possono venire
inclusi in questo modo file contenenti altri script PHP che vengono a
loro volta eseguiti, mentre in ASP no.
Ma questo per te non dovrebbe rappresentare un problema.
-- 
Sayonara
Massy

 "page" e' il parametro che viene passato nell'URL
URL? A meno che $page non sia una stringa che inizia con 'http://', il 
file viene cercato nel file system locale.
Il risultato di:
include ('pagina.php?page=pagina01.inc');
E':
Warning: Failed opening pagina.php?page=pagina01.inc
Se invece usi un vero URL:
include ('
http://example.invalid/pagina.php?page=pagina01.inc'
);
funziona, ma per ogni pagina che contiene quell'include vengono eseguite 
almeno 2 GET al server (1 per la pagina che contiene l'include, e uno 
fatto dall'interprete PHP per scaricare pagina.php).

, 
macg...@despammed.com
 says...

Ah ^_^


include ('pagina.php?page=pagina01.inc');
E perche' dovrei fare una cosa simile?
pagina.php effettua gia' l'inclusione di cui ho bisogno, non vedo
perche' includerla a sua volta in un altra pagina.
Quanto agli URL, "pagina.php" e "pagina##.inc" si trovano tutte sullo
stesso server.
-- 
Sayonara
Massy