Newsgroup: it.lavoro.professioni.webmaster
Titolo: mistero buffo

E' risaputo universalmente che si puo' inserire codice php in un html e 
viceversa, si puo' inserire codice html in un php file.
Perchè allora se io questo codice :
<html>
<head>
</head>
<body>
<?php
include('ita_testata.html')
?>
</body>
</html>
lo salvo su un file 'index.php', funziona normalmente,
e invece se lo salvo come 'index.html' non funziona niente ?
Che i file .php vengano 'parserati' dal server, sembra ovvio, ma non 
deve essere così anche per i file .html che contengono 'embedded' php ???

 'embedded' php ?
No, non "deve".
Il server obbedisce a delle regole, nel tuo caso al server è stato detto 
di interpretare i file .php e non gli html, puoi cambiare questa 
impostazione come più ti piace.

 impostazione come più ti piace.
E su quale file config file di Apache, please ?? (XAMPP)

 impostazione come più ti piace.
inoltre : ma non è una cosa 'standard universale' poter inserire codice 
php in un file html ? Allora non dovrebbe essere permesso dalla 
configurazione di TUTTI i server del pianeta ?
(non parlo del mio caso, perchè io ho un XAMPP sul localhost).

 E su quale file config file di Apache, please ?? (XAMPP)
Specificatamente non uso più XAMPP da un po' comunque cercando nella 
directory "apache" troverai sicuramente il file httpd.conf.
Cerca lì dentro qualcosa di simile a:
AddType application/x-httpd-php .php
oppure (se esegue PHP come CGI):
AddHandler application/x-httpd-php
Credo siano istruzioni abbastanza auto-esplicative.
Se sei in hosting presso terzi (dove di solito non si può modificare il 
file httpd.conf) o se ti risulta più comodo puoi inserire la stessa 
istruzione in un file .htaccess.
Per rispondere all'altra tua domanda:
 > inoltre : ma non è una cosa 'standard universale' poter inserire
 > codice php in un file html ? Allora non dovrebbe essere permesso
 > dalla configurazione di TUTTI i server del pianeta ?
E' permesso ma non ha sempre senso: costringi il web server a far 
passare per l'interprete PHP tutte le pagine. In caso di siti con molte 
pagine statiche la cosa potrebbe diventare pesante.
In parte è anche una questione di ordine: con l'estensione .htm(l) sai 
che hai una pagina (X)HTML (comunque statica), con .php(3/4) sai che hai 
di fronte una pagina dinamica.

 di fronte una pagina dinamica.
Ma se questo è vero, non è esso un suggerimento implicito a NON usare 
l'embedded php nei file html ??

 l'embedded php nei file html ??
Ti esplicito il suggerimento: non usare PHP embedded nei file HTML se non 
come linguaggio di templating (quindi usando solo print, echo, for, 
foreach, while, if/elseif/else)
Continuando sul discorso "separazione" gia` fatto per HTML e CSS, anche 
il PHP deve essere separato dal resto.
Un'introduzione abbastanza grezza (avevo mezz'ora di tempo...) sulla 
separazione di PHP da HTML (e poi continuata su Zend Framework) l'ho 
fatta al Linux Day 2008 a Treviso. Qui trovi le slide:
http://alex.amiran.it/20081031/linux-day-2008-a-treviso-come-andata/
Nelle prime 4 o 5 trovi un esempio di come fare. Poi, se ti interessa lo 
Zend Framework, leggi anche quelle dopo. :)
Bye.

 l'embedded php nei file html ??
No, è l'invito esplicito a non usare embedded php nei file _con 
estensione_ html ;-)
Oltre a quanto giustamente suggerisce il buon Alessandro.

 php in un file html ? 
cioè tutto il mondo usa il tuo webserver , e lo usa configurato come il 
tuo?
direi di no

 
tenkiù. Io leggo e mi interessa tutto quello che mi capita sotto mano 
sull'argomento.
:-))

 E se è configurato così, allora non dovrebbe accettare *tutto*  ?
Lo hai configurato per farlo? :)
Il server web non va a leggere ogni file che gli chiedi, semplicemente lo 
copia dal disco alla rete.
Se tu gli dici che i file con estensione .php li deve prima passare (NON 
leggere, passare) all'interprete PHP, lui lo fa. E` poi l'interprete PHP 
che li legge (fa il parsing), li compila, li esegue e restituisce l'html 
al webserver. Il quale, di nuovo, se ne frega del contenuto del file, e 
lo copia pari pari dalla pipe con l'interprete PHP alla rete.
In sintesi: il webserver non legge i file. Alcuni webserver possono 
essere configurati per fare determinate azioni in base ai metadati dei 
file (il nome, come in questo caso, o il mime-type, o la data, o la 
dimensione), ma non al contenuto del file.
Bye.

 deve essere così anche per i file .html che contengono 'embedded' php ???
no, non "deve". il file /etc/httpd/httpd.conf ti dovrebbe fornire tutte 
le spiegazioni del caso.