Char Sets & verschil tussen HTML/XHTML

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een site opgebouwd uit .shmtl files: elke deelpagina is één shtml file. Vervolgens include ik in elke deelpagina een menu.html; banner.html en inhoud_deelpagina.html.

Dit gaat allemaal goed, site is online en werkt, naar mijn gevoel gewoon goed. Er zijn geen problemen in FF/chrome of IE. Echter krijg ik heel de boel niet gevalideerd... De W3C validator voegt de includes gewoon toe en controleert dan heel het document. Dan krijg je zoiets:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# <?xml version="1.0" encoding="utf-8"?>
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
# "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
# <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
#
#
# <head>
# <link rel="stylesheet" href="stijl.css" type="text/css"/>
# <meta name="description" content="blabla"/>
# <meta name="keywords" content="blabla"/>
# <title> ..:: Welkom op mijn site ::.. </title>
# </head>
# <body>
# <div id="geheel">
# <div id="menucover">
# </div>
# <div id="menu">
# <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
# "http://www.w3.org/TR/html4/strict.dtd">
# <html>
#
# <head>
# <title>Menu</title>
# </head>
# <body> ...

Zoals je kan zien, doet de validator bijzonder moeilijk wanneer hij halverwege de pagina (want hij ziet het als één pagina) opeens terug '<!doctype HTML public ...' tegenkomt. De hele "charsetting" (of hoe heet dat?) weghalen levert massa's errors op omdat je dan met <title>, <head> en <body> etc in conflict raakt...

Ik heb er al naar gegoogled en een aantal oplossingen geprobeerd, echter blijft hij die error geven. De doctype van de html files voorzien van een shtml "charsetting" helpt niet, en ook de standaard declaraties van W3C heb ik geprobeerd... Is er een eleganter oplossing voor dit probleem? Dan hoor ik het graag ;)

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

Waarom simuleer je frames op dergelijke wijze? De elegantere wijze heet PHP, ASP.net of $randomAndereTaal.

[ Voor 39% gewijzigd door MueR op 28-01-2010 16:23 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 23:47

RM-rf

1 2 3 4 5 7 6 8 9

wil je je pagina valideren, moeten de 'samengevoegde' delen gewoon samen een valide HTML-pagina zijn, en dus maar één keer en DOCTYPE bevatten, eveneens slechts eéén HEAD-sectie en maar eenmaal <HTML> en <BODY> opentags


oftewel, je pagina's menu.html, banner.html en inhoud_deelpagina.html. mogen zelf géén DOCTYPE , HTML-tags en HEAD-sectie bevatten, die mogen enkel in de 'container-pagina' staan (of eventueel in het eerste geinclude deel)
MueR schreef op donderdag 28 januari 2010 @ 16:23:
Waarom simuleer je frames op dergelijke wijze? De elegantere wijze heet PHP, ASP.net of $randomAndereTaal.
.shtml lijkt me gewoon een verwijzing naar 'Server Side Includes' of SSI..
niet eens een taal maar gewoon een standaard server-functionaliteit..

mogelijk kan de Topicstarter het ook wel met een andere taal doen, daarover geeft hij geen verdere informatie, maar dat lijkt me hier ook helemaal niet relevant...


mensen die roepen dat 'PHP gebruiken' per definitie de 'elegantere werkwijze' zou zijn, heten in mijn boekje al héél lang 'php-aapjes' ;) :P

[ Voor 44% gewijzigd door RM-rf op 28-01-2010 16:27 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thx voor de replies!

@Muer: dat is een makkelijke: ben geen informaticus en heb geen verstand van PHP/ASP/...

@RM-rf: Daar was ik dus al bang voor, dan zal ik alles maar in één html-bestand gooien..

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

Gelukkig is dat vrij makkelijk hoor.
Op de plek waar je hem wil includen:
PHP:
1
<?php include 'menu.php'; ?>

menu.php:
HTML:
1
2
3
<div id="menu">
  <!-- de rest van je menu -->
</div>


Als je hier en in Programming zoekt vind je vast voorbeelden en veelgemaakte fouten daarbij ;)

[ Voor 19% gewijzigd door MueR op 28-01-2010 16:55 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 00:54
Verwijderd schreef op donderdag 28 januari 2010 @ 16:44:
@RM-rf: Daar was ik dus al bang voor, dan zal ik alles maar in één html-bestand gooien..
Dit klinkt alsof je nu het menu gaat kopiëren naar alle verschillende pagina's, wat onderhoud niet echt makkelijk maakt. Waarom niet gewoon die dubbele tags weghalen? Als je menu.html ook apart wilt kunnen bekijken o.i.d., maak dan een menu.shtml met doctype, head e.d. waarin je het 'kale' menu (zonder die dingen) includet.

@hierboven: met SSI kan hij toch hetzelfde? (Nouja, het is niet zo dynamisch natuurlijk, maar precies zoals het daar staat (met hardcoded bestandsnaam) gaat prima en het scheiden van menu en zo is denk ik waar het vooral om gaat.)

En nog even voor de duidelijkheid:
De W3C validator voegt de includes gewoon toe en controleert dan heel het document.
Ervan uitgaand dat het inderdaad om SSI gaat: die validator heeft niets met die includes te maken; de webserver parset .shtml-bestanden en vervangt die include directives door de inhoud van het desbetreffende bestand, waarna het geheel naar de client (hier dus validator) gestuurd wordt.

[ Voor 38% gewijzigd door Raynman op 28-01-2010 17:03 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@raynman: Thx voor de tip, daar had ik nog niet aan gedacht.. Ik ga het zo proberen zodat ik kan valideren. Thx

edit: uhm, dan zou ik menu.html herleiden naar een kladblokje dat er zo uitziet? :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="5"><em><img src="images/hoofdbanner.png" alt=" " width="750" height="100" /></em></td>
  </tr>
  <tr>

    <td><a href="index.shtml"><img src="images/index_but.png" alt="Ga terug naar de beginpagina." width="150" height="52" border="0" /></a></td>

    <td><a href="tuinmeubelen.shtml"><img src="images/tuinmeubelen_but.png" alt="Tuinmeubelen" width="150" height="52" /></a></td>

    <td><a href="vasteplanten.shtml"><img src="images/vasteplanten_but.png" alt="Vaste planten" width="150" height="52" /></a></td>

    <td><a href="potterie.shtml"><img src="images/potterie_but.png" alt="Potterie" width="150" height="52" /></a></td>

    <td><a href="fruitbomen.shtml"><img src="images/fruitbomen_but.png" alt="Fruitbomen" width="150" height="52" /></a></td>



  </tr>
</table>


ps: thema is een tuincentrum zoals je ziet :+

[ Voor 82% gewijzigd door Verwijderd op 28-01-2010 17:02 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 28 januari 2010 @ 16:59:
edit: uhm, dan zou ik menu.html herleiden naar een kladblokje dat er zo uitziet? :
Los van wat semantisch gemierenneuk etc. kan dat ja ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 00:54
Als je dat includet op een andere pagina ergens tussen de body-tags dan is het al een stuk beter ja (bedenk/test gewoon wat het eindresultaat na het parsen van die includes wordt). Ik zeg niet dat het goed is, want ik kan zo snel niet zien of er nog typefouten in zitten (als je code=html gebruikt wordt dat al makkelijker) en van dat tabellengebruik worden denk ik weinig mensen blij.

[ Voor 11% gewijzigd door Raynman op 28-01-2010 17:11 ]


Acties:
  • 0 Henk 'm!

  • pieturp
  • Registratie: April 2004
  • Laatst online: 27-08 14:18

pieturp

gaffa!

En de <em> rond je <img> is ook niet erg nodig ;-)

... en etcetera en zo


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Server Side includes heten niet voorniets zo.

Het samenvoegen van die bestanden gebeurt op de server. Vervolgens wordt het hele paketje in één keer naar je webbrowser gestuurd. Daar komt het als één document aan, en wordt ook zo behandeld.
Het is dus zaak om te zorgen dat die output een valide HTML-document is.
Of dat nou gegenereerd wordt door één bestand weer te geven, of door meerdere brokken tekst samen te voegen, dat maakt niet uit.

Het maakt ook niet uit watvoor extensie de includes hebben. ".html" is misschien makkelijk, maar .txt, .php, .noemmaarwat, het zal je server een worst wezen zolang er maar tekst in staat.
Pagina: 1