ssi werkt niet?

Status
Niet open voor verdere reacties.

janbe63

Gebruiker
Lid geworden
21 okt 2007
Berichten
64
Ik heb 2 files:

test1.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="janbe" />

<title>Untitled 1</title>
</head>

<body>

test 1

<!--#include virtual="test2.htm" -->

</body>
</html>

en test2.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="janbe" />

<title>Untitled 2</title>
</head>

<body>

Dit is een test

</body>
</html>

nu is natuurlijk de bedoeling dat test2.htm in test1.hrml wordt gelezen

echter de weergave van de "site" bevat alleen de regel
test 1

in de bronweergave zie ik

test 1

<!--#include virtual="test2.htm" -->

De files staan in dezelfde map op de server, en ssi wordt ondersteund want op dezelfde server staat een phpbb testforum waarin ook gebruik wordt gemaakt van #include en die werken wel.

Wat doe ik fout?

Jan
 
helaas werkt dat ook niet, ook het voorbeeld

<HTML>
<TITLE>Test File</TITLE>

<!--#config timefmt="%A" --> <!--#echo var="DATE_LOCAL" -->

</HTML>




als html of shtml file geeft geen resultaat
 
Hm, het zou kunnen dat includes standaard uit staan maar door het forum via een .htaccess bestand worden aangezet. Wat je kunt proberen is een .htaccess bestand aanmaken met de volgende inhoud:
Code:
AddType text/html .htm
AddHandler server-parsed .htm
Options Indexes FollowSymLinks Includes
Dat bestand zet je vervolgens in de hoofdmap van je site. Ik weet het niet 100% zeker, maar daarmee zouden je includes moeten gaan werken in .htm bestanden.
 
.htaccess in de root gezet, files test1.html en test2.htm in de root gezet:, internet explorer opnieuw opgestart.

Dit geeft de broncode



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="janbe" />

<title>Untitled 1</title>
</head>

<body>

test 1

<!--#include file="test2.htm" -->

</body>


</html>


Nog sugesties?
 
hrm, helaas niet. Ik heb geen idee wat het probleem dan zou kunnen zijn. Hopelijk komt er nog iemand langs met een beter idee.

EDIT: Je kunt HTML code op het forum trouwens het beste tussen [*html] [/*html] (zonder *) zetten, dat maakt het, zeker bij lange lappen code, een stuk overzichtelijker.
 
Laatst bewerkt:
De files staan in dezelfde map op de server, en ssi wordt ondersteund want op dezelfde server staat een phpbb testforum waarin ook gebruik wordt gemaakt van #include en die werken wel.

Maakt phpbb echt gebruik van SSI? Het is geschreven in PHP, dus het lijkt me logischer als het gebruik maakt van de PHP-functie "include", in plaats van SSI.
 
In een aantal html files kom ik echt bijv. tegen <!-- INCLUDE overall_header.html --> en <!-- INCLUDE overall_footer.html --> en deze files worden bij weergave ook echt geïncluded, dus phpbb is weliswaar geschreven in php maar de weergave op de site maakt gebruik van HTML en SSI.
 
wel is het vreemd dat als ik alles tussen <!-- INCLUDE overall_header.html --> en <!-- INCLUDE overall_footer.html --> weghaal en daar alleen TEST tussen zet hij deze op de juiste plaats weergeeft, zet ik er dan <!--#config timefmt="%A" --> <!--#echo var="DATE_LOCAL" --> om de dag weer te geven, als gesuggereerd in http://www.htmlgoodies.com/beyond/we...de-Command.htm, dan komt deze niet (maar staat wel in de bron).
 
Wat me nu ook opvalt is het wel/niet gebruik van #, misschien zit hier ergens de oplossing??
 
Hoi-hoi,
Is het niet zo, dat een include alléén een code-fragment is?
Dus niet een complete pagina met !Doctype, <html> en <body>? ;)
Dat is het essentiële verschil met een <iframe>!

Want een ssi-include gaat op dezelfde manier als een php-include, alleen de aanroep is iets anders.
  • Je geeft het in te sluiten fragment wel de .html-uitgang, maar dat zegt niet dat het een echte html-pagina is. *)

In een in te plakken menu.htm fragment staat dan bv. alleen:
HTML:
<ul id="menu">
   <li><a href="index.html">home</a></li>
   <li><a href="portfolio.htm">portfolio</a></li>
   <li><a href="contact.htm">contact</a></li>
</ul>
Exact die code wordt dan door de ssi ingeplakt op de plaats van de regel waar de ssi-include opdracht in staat die naar menu.htm verwijst.
Niet meer, niet minder. :)

Ergo: als je van de include een echte complete pagina maakt, komt er midden in de <body> van de eerste pagina opeens een knoepert van een <!Doctype...><html><head>... enz. te staan, en daar kunnen servers en/of browsers niet zo goed tegen. ;)

Met vriendelijke groet,
CSShunter
___________
*) Als je het fragment bv. menu.janbe63 noemt, en in de include ook keurig naar dat bestand verwijst, dan werkt het ook: het hoeft niet eens een bestaande extensie te zijn. Je kan het ook menu.txt noemen, maakt allemaal niet uit. - Als de code die er in zit maar valid html is, en als de verwijzing maar klopt, gaat het goed.
 
Je hebt inderdaad gelijk dat doctype, etc. niet in het geïinclude bestand thuishoren, maar aangezien die kleine testpagina (die alleen wat code uitvoert en niets include) ook niet werkt moet er toch meer aan de hand zijn.
 
Ik denk ook dat er meer aan de hand is, wat dat weet ik niet, maar de include en de gewone code's worden niet uitgevoerd.
Heb besloten om de php-include methode te gaan gebruiken, en dit werkt wel.

csshunter, je heb gelijk dat de include inderdaad alleen een invoeging is van de "tekst", dus inderdaad de stukken als doc-type/body etc mogen er niet in staan. Dit is het grote verschil met een (i)frame invoegen.

Is er een verschil in html-code als je de betreffende code hernoemt van html-file naar php-file zodat het "php script" uitgevoerd wordt?
 
Ik denk toch dat SSI niet wordt ondersteund/uitgeschakeld is. Ik heb nog even naar phpBB gekeken en daar wordt geen gebruik gemaakt van SSI, maar van een eigen include systeem via PHP. Zie bijvoorbeeld dit forumbericht.
 
Hoi janbe63,
Nog even deze:
Is er een verschil in html-code als je de betreffende code hernoemt van html-file naar php-file zodat het "php script" uitgevoerd wordt?
Nee hoor, de code blijft hetzelfde, alleen de uitgang wordt van .htm of .html naar .php overgezet.



Met vriendelijke groet,
CSShunter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan