Validierung

Hallo NG

ich habe meine Website praktisch fehlerfrei. Mit Ausnahe der externen Links,
die vielfach so aussehen : ......&id=......, was nicht W3C konform ist. Kann
ich FP2003 beibringen die & aufzulösen , so dass .....&id=...
herauskommt ? Suchen und Ersetzen geht natürlich nicht, weil es schon
korrekte Links gibt und andererseits z.B. ' (für ') auch korrekt ist.
Also nicht alle & müssen aufgelöst werden.

Oder kennt jemand ein Utility, dass das geschilderte Problem lösen kann. Bei
einigen tausend externen Links kommt eine manuelle Nachbearbeitung nicht
infrage.

Zusatzfrage : Was macht ein Browser, dem man den DOCTYPE transitional
verpasst hat bei dieser Art von Fehler : Schaltet er in den Quirks-Modus ?

Besten Dank und freundliche Güsse
Erich Gysel
Erich Gysel [ So, 29 Oktober 2006 21:29 ] [ ID #1517111 ]

Re: Validierung

Erich Gysel wrote:

> Hallo NG
>
> ich habe meine Website praktisch fehlerfrei.

Geht sowas?


> Mit Ausnahe der externen
> Links, die vielfach so aussehen : ......&id=......, was nicht W3C konform
> ist. Kann ich FP2003 beibringen die & aufzulösen , so dass
> .....&id=... herauskommt ? Suchen und Ersetzen geht natürlich nicht,
> weil es schon
> korrekte Links gibt und andererseits z.B. ' (für ') auch korrekt ist.
> Also nicht alle & müssen aufgelöst werden.
>
> Oder kennt jemand ein Utility, dass das geschilderte Problem lösen kann.
> Bei einigen tausend externen Links kommt eine manuelle Nachbearbeitung
> nicht infrage.
>
> Zusatzfrage : Was macht ein Browser, dem man den DOCTYPE transitional
> verpasst hat bei dieser Art von Fehler : Schaltet er in den Quirks-Modus ?

Ist Standard.
DOCTYPE Strict wäre für Korinthenkacker.

Machste ein Link .... Fehler an Administrator melden.

Webbrowser machen alle was sie selbst für richtig halten.
francis.debord [ Mo, 30 Oktober 2006 00:14 ] [ ID #1517922 ]

Re: Validierung

"Erich Gysel" schrieb

> die vielfach so aussehen : ......&id=......, was nicht W3C konform ist.
> Kann

Bist Du wirklich sicher, dass dies nicht W3C konform wäre? Nach CGI
Konvention dient das Fragezeichen dazu CGI Paramenter nach dem URL Teil
abzutrennen und das kaufmännische Und dazu die Parameter untereinander zu
trennen. Etwa

http://server/seite.htm?param1=wert1¶m2=wert2

Nehme ich ein simples Server-Script und ersetze das & durch & geht das
Script nicht mehr, weil eben die Sonderbedeutung des & aufgehoben wurde und
wirklich das Zeichen & übermittelt wurde. Primitiv-Test:

http://www.neusob.de/ak-inhalt/reflektor.asp?param1=wert1&pa ram2=wert2
und
http://www.neusob.de/ak-inhalt/reflektor.asp?param1=wert1&am p;param2=wert2

So wie Du es beschreibst mit &id=.... ist das eine CGI Variable (Id eben)
die das Server-Script so braucht.

--

Viele Grüße
Hubert Daubmeier
Hubert Daubmeier [ Mo, 30 Oktober 2006 01:27 ] [ ID #1517923 ]

Re: Validierung

Hallo,

Hubert Daubmeier <hubertd [at] neusob.de> schrieb:

> Bist Du wirklich sicher, dass dies nicht W3C konform wäre?

Wenn das im Quelltext einer Webseite auftaucht, ist das natürlich nicht
erlaubt - das Ampersand muss entsprechend maskiert werden.

> Nach CGI Konvention dient das Fragezeichen dazu CGI Paramenter nach dem
> URL Teil abzutrennen und das kaufmännische Und dazu die Parameter
> untereinander zu trennen.

Das betrifft aber nur das, was am Server selbst ankommt. Und der Browser
sendet halt das entsprechende Zeichen, aus dem Grund funktionieren ja
auch eMail-Adressen weiterhin, wenn man im Quelltext einzelne Teile
gegen die entsprechenden (hexa-)dezimalen Zeichenreferenzen austauscht.

> Nehme ich ein simples Server-Script und ersetze das & durch & geht das
> Script nicht mehr, weil eben die Sonderbedeutung des & aufgehoben wurde
> und wirklich das Zeichen & übermittelt wurde.

Dieses Problem ist seit einiger Zeit bekannt und in der Dokumentation
gängiger Scriptsprachen findet man auch Beispiele, wie man das angehen
kann (bei PHP kann man den 'arg_separator' umkonfigurieren, um z.B. das
Semikolon als Argumenttrenner zu verwenden). Mehr dazu gibts auch beim
W3C <http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2>.


Gruß,

Dominik.
schlu-do [ Mo, 30 Oktober 2006 01:49 ] [ ID #1517924 ]

Re: Validierung

Erich Gysel schrieb:

> Kann ich FP2003 beibringen die & aufzulösen , so dass .....&id=...
> herauskommt ?

Sub EscapeAmpersands()

Dim wf As WebFile
Dim pw As PageWindowEx
For Each wf In ActiveWeb.AllFiles
If wf.Extension = "html" Then
Set pw = wf.Edit(fpPageViewNoWindow)
Dim a As FPHTMLAnchorElement
For Each a In pw.Document.all.tags("a")
If a.href <> "" Then

'Maskierung entfernen.
Dim url As String
url = a.href
url = Replace(a.href, "&", "&")
url = Replace(a.href, "&", "&")
url = Replace(a.href, "&", "&")

'Maskierung wiederherstellen.
Dim attr As String
attr = Replace(url, "&", "&")

a.href = attr
End If
Next
If pw.IsDirty Then pw.Save
pw.Close
End If
Next

End Sub

sollte in den meisten Fällen tun. Sicherungskopie nicht vergessen.

> Bei einigen tausend externen Links kommt eine manuelle Nachbearbeitung
> nicht infrage.

Erstaunlich, daß diese Links überhaupt erstellt werden konnten.

> Zusatzfrage : Was macht ein Browser, dem man den DOCTYPE transitional
> verpasst hat bei dieser Art von Fehler :

Er tut genau das, was er bei jedem anderen Fehler im Dokument auch macht.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Mo, 30 Oktober 2006 01:55 ] [ ID #1517925 ]

Re: Validierung

Hallo Christoph

danke für das VBA-Script. Da meine VBA-Kenntnisse ca. 0.1% sind, werde ich
mich wohl zuerst einmal damit beschäftigen müssen, diese zu upgraden. Soweit
ich das Script verstehe, sollte es das Problem lösen

>sollte in den meisten Fällen tun.

Das bezieht sich auf das Script. Und in welchen Fällen tut es nicht ?

Gruss Erich
Erich Gysel [ Mo, 30 Oktober 2006 10:34 ] [ ID #1517926 ]

Re: Validierung

"Christoph Schneegans" schrieb ;

> Erstaunlich, daß diese Links überhaupt erstellt werden konnten.
|
Wenn die ext. Links falsch sind, FP korrigiert sie nicht. Oder habe ich
etwas übersehen? Warum setzt eigentlich FP für z.B für ' richtig den Wert
' Bei einer externen Verlinkung macht FP aus <a
href://...........&id=...> nicht automatisch <a
href=............&id=.............>

Gruss Erich
Erich Gysel [ Mo, 30 Oktober 2006 18:47 ] [ ID #1517930 ]

Re: Validierung

Erich Gysel schrieb:

> Bei einer externen Verlinkung macht FP aus
> <a href://...........&id=...> nicht automatisch
> <a href=............&id=.............>

Ja, das ist ein Bug, bei Expression Web endlich behoben.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Mo, 30 Oktober 2006 20:32 ] [ ID #1517933 ]

Re: Validierung

Erich Gysel schrieb:

>> sollte in den meisten Fällen tun.
>
> Und in welchen Fällen tut es nicht ?

In HTML (nicht aber bei XHTML) kann man bei Entity-Referenzen unter
gewissen Bedingungen das abschließende Semikolon auch weglassen, bspw.
ist

...

gültig und zu

...

äquivalent.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Mo, 30 Oktober 2006 20:32 ] [ ID #1517934 ]

Re: Validierung

"Christoph Schneegans"

> Ja, das ist ein Bug, bei Expression Web endlich behoben.
>
Schön wärs ! Wenn du im Code bei Expression Web einen solchen exterenen Link
mit (&id) einträgst, wird er nicht korrigiert.

Gruss Erich
Erich Gysel [ Di, 31 Oktober 2006 09:19 ] [ ID #1519158 ]

Re: Validierung

Hallo Christioph

leider habe ich ein Problem mit deinem VBA-Script. Ich habe gemacht :

1. Script im Visual Basic Editor eingefügt -> Modul1
2. Modul1 -> Debuggen/Kompilieren von Microsoft Frontpage
3. in FP2003 -> Extras/Makros/Ausführen

Es tut sich gar nichts. Vielleicht kannst du mir auf die Sprünge helfen ?

Danke und Gruss
Erich
Erich Gysel [ Di, 31 Oktober 2006 10:24 ] [ ID #1519159 ]

Re: Validierung

Erich Gysel schrieb:

> Wenn du im Code bei Expression Web einen solchen exterenen Link mit
> (&id) einträgst, wird er nicht korrigiert.

Wenn du ihn in der Normalansicht einfügst, wird er korrekt maskiert. Genau
das ist der Unterschied zu FrontPage 2003.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Di, 31 Oktober 2006 10:50 ] [ ID #1519160 ]

Re: Validierung

Erich Gysel schrieb:

> leider habe ich ein Problem mit deinem VBA-Script. (...) Es tut sich
> gar nichts.

Stell sicher, daß eine Website geöffnet ist und diese Website
HTML-Dokumente mit der Erweiterung ".html" enthält oder paß die Zeile

If wf.Extension = "html" Then

entsprechend an.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Di, 31 Oktober 2006 10:54 ] [ ID #1519161 ]

Re: Validierung

"Christoph Schneegans" <Christoph [at] Schneegans.de> schrieb im Newsbeitrag
> Wenn du ihn in der Normalansicht einfügst, wird er korrekt maskiert. Genau
> das ist der Unterschied zu FrontPage 2003.

Das ist aber ganz schwach ! Die Maskierung sollte zum Zeitpunkt des CLOSE
passieren. Wenn du im Code arbeitest, hast du keine Maskierung ! Du kannst
ja ebenfalls ganze HTML-Seiten importieren -> dasselbe Problem.

Gruss Erich
Erich Gysel [ Di, 31 Oktober 2006 13:55 ] [ ID #1519162 ]

Re: Validierung

"Christoph Schneegans" <Christoph [at] Schneegans.de> schrieb im Newsbeitrag
news:ei7a1g.d8.1 [at] news.christoph.schneegans.de...
> Stell sicher, daß eine Website geöffnet ist und diese Website
> HTML-Dokumente mit der Erweiterung ".html" enthält oder paß die Zeile
>
> If wf.Extension = "html" Then
>
> entsprechend an.
Das Problem war genau dieses If -> html -> htm.

Ob die Ausführung richtig geklappt hat, weiss ich nicht mit Sicherheit. Denn
FP hat sich irgendwann "aufgehängt". D.h. die Sanduhr blieb stehen und beim
Close von FP -> "FP reagiert nicht". Andererseits einige Validierungstests
haben gezeigt, dass zumindest auf jene Seiten das Script einwandfrei
funktioniert hat.

Nochmals herzlichen Dank für dein Script und deine Hilfe

Es grüsst dich Erich
Erich Gysel [ Di, 31 Oktober 2006 14:01 ] [ ID #1519163 ]

Re: Validierung

Erich Gysel schrieb:

>> Wenn du ihn in der Normalansicht einfügst, wird er korrekt maskiert.
>> Genau das ist der Unterschied zu FrontPage 2003.
>
> Das ist aber ganz schwach ! Die Maskierung sollte zum Zeitpunkt des CLOSE
> passieren.

Quatsch. Manuell eingegebener HTML-Code darf vor allem vom Programm nicht
mehr verändert werden. Wenn der Autor keine Ahnung hat, kann er eben nicht
in der Code-Ansicht arbeiten.

> Wenn du im Code arbeitest, hast du keine Maskierung ! Du kannst ja
> ebenfalls ganze HTML-Seiten importieren -> dasselbe Problem.

Garbage in, garbage out.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Di, 31 Oktober 2006 14:27 ] [ ID #1519164 ]

Re: Validierung

Erich Gysel schrieb:

> Ob die Ausführung richtig geklappt hat, weiss ich nicht mit
> Sicherheit. Denn FP hat sich irgendwann "aufgehängt".

Wie lange hast du denn gewartet? Das Makro kann je nach Größe der Website
durchaus einige Minuten laufen. Du kannst es im VBA-Editor jederzeit mit
Strg+Pause unterbrechen.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Di, 31 Oktober 2006 14:34 ] [ ID #1519165 ]

Re: Validierung

Hallo Christoph,

>> Kann ich FP2003 beibringen die & aufzulösen , so dass
>> .....&id=... herauskommt ?

vor einem halben Jahr kam ich hier mit dem gleichen Thema an. Den
Verweis auf diesen thread erspare ich uns. Der ist so wirr, den habe ich
soeben selbst kaum verstanden :-)

Eine der beiden Seiten, um die es geht, ist diese:
http://www.tcbislich.de/jugend.htm

Wie man in der Quelltextansicht des IE sieht, fehlen bei den Links der
Spalte 'Tabelle' die Zeichen 'amp;'

> Sub EscapeAmpersands()
> [...]

Dein Skript habe ich überarbeitet, da ich ja mit FP 2000 arbeite. Das
war (fast) erfolgreich (1).

Ich habe nun o.g. Seite aus meinem lokalen Web heraus auf ein anderes
Laufwerk kopiert und umbenannt. Bei dieser standalone-Seite habe ich
dann Dein Skript benutzt, die Änderungen durchgeführt, abgespeichert,
wunderbar.
Danach die Seite nochmals mit FP geöffnet ... die ergänzten 'amp;' waren
alle noch da. Die Links funktionieren. Der Validator sagt 100% ok.

Ich wollte daraufhin schon fragen, was mit dem Skript anders ist als
gegenüber der manuellen Änderung ('zu Fuß' oder per Suchen/Ersetzen) in
FP, Notepad oder Phase5.

Doch dann habe ich die umbenannte Seite in meinen lokalen Webordner
kopiert, mein Web mit FP2000 geöffent, die Seite aufgerufen ... und die
ergänzten 'amp;' waren alle *verschwunden!*
Den Vorgang habe ich wiederholt und -> Datei ->Importieren probiert. Die
ergänzten 'amp;' blieben verschwunden.

Ich kann mir darauf so gar keine Reim machen ...
Ich habe damals 2 Tage mit der Problem verbracht und es dann dabei
belassen, da alles funktioniert - außer, daß der Validator (zurecht)
meckert.

(1)
Das Skript habe ich wie folgt geändert:
------
Sub EscapeAmpersands()

Dim a As FPHTMLAnchorElement
For Each a In ActiveDocument.all.tags("a")
If a.href <> "" Then

'Maskierung entfernen.
Dim url As String
url = a.href
url = Replace(a.href, "&", "&")
url = Replace(a.href, "&", "&")
url = Replace(a.href, "&", "&")

'Maskierung wiederherstellen.
Dim attr As String
attr = Replace(url, "&", "&")

a.href = attr
End If
Next

End Sub

------
Es tritt dabei der Fehler auf, daß ich als Resultat &amp; erhalte.
Das war per Suchen/Ersetzen natürlich leicht zu korrigieren. Wo habe ich
da einen Fehler eingebaut?

--
Gruß Jürgen
***
Windows 2000 SP4 - Alle Updates - 31.10.06
http://home.arcor.de/jterlinden/index.htm
Juergen Terlinden [ Di, 31 Oktober 2006 16:08 ] [ ID #1519166 ]

Re: Validierung

Juergen Terlinden schrieb:

> vor einem halben Jahr kam ich hier mit dem gleichen Thema an. Den
> Verweis auf diesen thread erspare ich uns. Der ist so wirr, den habe ich
> soeben selbst kaum verstanden :-)
>
> Eine der beiden Seiten, um die es geht, ist diese:
> http://www.tcbislich.de/jugend.htm

Ich kann das immer noch nicht nachvollziehen. Wenn "Unter Verwendung der
folgenden Regeln neu formatieren" aktiv ist, werden unmaskierte
"&"-Zeichen sogar automatisch maskiert, und bereits maskierte "&"-Zeichen
werden niemals nochmal maskiert.

> Wie man in der Quelltextansicht des IE sieht, fehlen bei den Links der
> Spalte 'Tabelle' die Zeichen 'amp;'

<http://www.htmlhelp.org/cgi-bin/validate.cgi?url=http://www.tcbislich.de/jugend.htm>
sieht da nur einen einzigen solchen Link.

> Es tritt dabei der Fehler auf, daß ich als Resultat &amp; erhalte.
> Das war per Suchen/Ersetzen natürlich leicht zu korrigieren. Wo habe
> ich da einen Fehler eingebaut?

FrontPage 2000 ist in dieser Hinsicht weniger kaputt als 2002 und 2003,
ein Text wie "foo=1&bar=2" wird vor der Serialisierung automatisch korrekt
maskiert. Wenn du "&" selbst maskierst, maskiert FrontPage nochmal; es
könnte ja sein, daß du im Browser "&" anzeigen lassen willst. Das
Verhalten von FrontPage 2000 war absolut korrekt und es ist sehr
bedauerlich, daß die Nachfolger davon abgewichen sind. Deshalb sollte in
2000

Sub EscapeAmpersands()

Dim a As FPHTMLAnchorElement
For Each a In ActiveDocument.all.tags("a")
a.href = a.href
Next

End Sub

genügen, um kaputte Links (mit unmaskierten "&") zu reparieren und intakte
Links unverändert zu lassen. Ich kann das aber nicht testen.

--
<http://schneegans.de/sv/> - XML Schema Validator |
<http://schneegans.de/xp/> - XHTML Proxy |
<http://myblog.de/politicallyincorrect> - Mein Lieblings-Blog |
Christoph Schneegans [ Di, 31 Oktober 2006 18:02 ] [ ID #1519167 ]

Re: Validierung

"Christoph Schneegans" <Christoph [at] Schneegans.de> schrieb im Newsbeitrag
> Wie lange hast du denn gewartet? Das Makro kann je nach Größe der Website
> durchaus einige Minuten laufen. Du kannst es im VBA-Editor jederzeit mit
> Strg+Pause unterbrechen.

das Script hängt sich immer an derselben Stelle auf. Grund unbekannt. Ich
habe eine temporäre neue Website erstellt mit nur denjenigen Ordner, die
noch nicht "gescaned" wurden. Das Script in der temp. Website ausgeführt.
Ein Ordner wurde richtig bearbeitet. Dann wieder aufgehängt! Bearbeiteter
Ordner in die richtige Website importiert und der Ordner in der temp.
Website gelöscht. Das ganze solange, bis alle Ordner abgearbeitet waren.

"Ein bisshen EDV zu Fuss !" Das Script hat schlussendlich fast perfekt
funktioniert. Einige Fehler mit &amp; gefunden. Ca. 5000 Links wurden so
angepasst. Von den über 500 Webseiten sind nur noch 10 nach W3C nicht
fehlerfrei.

Nochmals Danke!
Ich betrachte die Aktion im Moment als abgeschlossen

Es grüsst dich
Erich
Erich Gysel [ Di, 31 Oktober 2006 21:54 ] [ ID #1519168 ]

Re: Validierung

'Christoph Schneegans' wrote:

>> vor einem halben Jahr kam ich hier mit dem gleichen Thema an. Den
>> Verweis auf diesen thread erspare ich uns. Der ist so wirr, den habe
>> ich soeben selbst kaum verstanden :-)
>>
>> Eine der beiden Seiten, um die es geht, ist diese:
>> http://www.tcbislich.de/jugend.htm
>
> Ich kann das immer noch nicht nachvollziehen. Wenn "Unter Verwendung
> der folgenden Regeln neu formatieren" aktiv ist, werden unmaskierte
> "&"-Zeichen sogar automatisch maskiert, und bereits maskierte
> "&"-Zeichen werden niemals nochmal maskiert.

"Unter Verwendung der folgenden Regeln neu formatieren" war nicht aktiv.
Nach Aktivierung wird in der HTML-Ansicht von FP alles korrekt
angezeigt.

Dennoch: Am Erbegnbis ändert sich nichts! Rufe ich die Datei sowohl
lokal als auch online auf, fehlen im Quelltext der Datei die
entsprechenden 'amp;'.

>> Wie man in der Quelltextansicht des IE sieht, fehlen bei den Links
>> der Spalte 'Tabelle' die Zeichen 'amp;'
>
>
<http://www.htmlhelp.org/cgi-bin/validate.cgi?url=http://www.tcbislich.d
e/jugend.htm>
> sieht da nur einen einzigen solchen Link.

Das ist definitiv falsch. Es sind 5 Links.
http://validator.w3.org/check?uri=www.tcbislich.de%2Fjugend. htm
findet sie alle.

Christoph, lassen wir es gut sein.

--
Gruß Jürgen
***
Windows 2000 SP4 - Alle Updates - 31.10.06
http://home.arcor.de/jterlinden/index.htm
Juergen Terlinden [ Mi, 01 November 2006 09:13 ] [ ID #1520462 ]
Microsoft » microsoft.public.de.frontpage » Validierung

Vorheriges Thema: Kein Umbruch im Quelltext
Nächstes Thema: Web auf Server öffnen?