<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="stilrss.css" type="text/css"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://tips.seifenrest.de/">
    <title>Tip des Tages</title>
    <description>Der Tip des Tages von tips.seifenrest.de - täglich ein neuer Tip.</description>
    <link>http://tips.seifenrest.de/</link>
    <dc:creator>tips.seifenrest.de</dc:creator>
    <dc:rights>&#169; 2006 tips.seifenrest.de</dc:rights>
    <dc:date>2012-02-07T00:00:02+01:00</dc:date>
    <items>
     <rdf:Seq>
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/empfehlungen/3/digitale-bibliothek-des-literaten-wunderhorn.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/empfehlungen/15/opera-besser-als-firefox-und-ie.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/html/2/html-strict-und-das-target-attribut.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/empfehlungen/3/digitale-bibliothek-des-literaten-wunderhorn.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/sonstiges/allerlei/11/passwoerter-sicher-und-leicht-zu-merken.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/html/13/vorschlaege-bei-eingabefeldern-verhindern.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/sonstiges/latex/8/nuetzliche-pakete-fuer-tex-bzw-latex.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/usability-accessibility/10/so-moegen-suchmaschinen-ihre-seiten.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/sonstiges/allerlei/11/passwoerter-sicher-und-leicht-zu-merken.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/html/2/html-strict-und-das-target-attribut.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/empfehlungen/4/progdvb.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/usability-accessibility/10/so-moegen-suchmaschinen-ihre-seiten.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/css/1/hintergrundbilder-einbinden.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/empfehlungen/4/progdvb.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/sonstiges/latex/9/kommutative-diagramme.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/usability-accessibility/16/frames-damit-sie-nicht-zum-gau-werden.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/html/13/vorschlaege-bei-eingabefeldern-verhindern.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/server/7/www-mit-oder-ohne.html" />
     <rdf:li rdf:resource="http://tips.seifenrest.de/webpublishing/css/5/dynamische-css-dateien-mit-php.html" /> 
     </rdf:Seq>
    </items>
</channel>
   <item rdf:about="http://tips.seifenrest.de/software/empfehlungen/3/digitale-bibliothek-des-literaten-wunderhorn.html">
   <title>Digitale Bibliothek - des Literaten Wunderhorn</title>
    <description><![CDATA[Seit etwa 10 Jahren veröffentlicht der DirectMedia-Verlag in seiner Reihe <a href="http://www.digitale-bibliothek.de/" rel="nofollow"><strong>Digitale Bibliothek</strong></a> Werke bekannter Schriftsteller, Philosophen und Wissenschaftler sowie Lexika, Enzyklopädien u. ä. in digitaler Form auf CD bzw. DVD.
 
In der über hundert Werke umfassenden Bibliothek finden sich viele interessante Ausgaben, doch will ich hier nicht Auswahl und inhaltliche Qualität, sondern vielmehr die technischen Aspekte, insbesondere die Azeige- und Verwaltungssoftware <strong>Digibib 4</strong> beleuchten.
 
Die Installation der Software erfolgt unkompliziert und belegt knapp 10 MB auf der Festplatte. Die Text- und Bilddaten werden von der jeweiligen CD geladen, sofern man diese nicht auch auf Festplatte installiert. Eine Installation auf Festplatte ist jedoch erst nach der Online-Registrierung möglich. Dann können beliebig viele Bände installiert und gleichzeitig genutzt werden.

Die Benutzung der Anzeigesoftware ist sehr einfach und intuitiv. Einige der hervorragenen Merkmale sind:
 - Volltextsuche im gesamten Text (bei Festplatteninstallation auch bandübergreifend)
 - Suche kann exakt, schreibweisentolerant oder sogar mit Platzhaltern durchgeführt werden, außerdem können boolsche Operatoren benutzt werden
 - Export von bis zu 100 Seiten in die Zwischenablage (anders als im Handbuch vermerkt werden in der neuesten <a href="http://www.digitale-bibliothek.de/scripts/ts.dll?s=1&amp;id=9A64E9CE&amp;mp=/pi/6/&amp;sc=Software" rel="nofollow">Version 4.01.146</a> auch Sonderzeichen exportiert)
 - Textstellen können verschiedenfarbig markiert und mit Kommentaren versehen werden
 - bis zu 250 Seiten könne gleichzeitig gedruckt werden.

Die Such-, Markier- und Exportfunktionen lassen die Digitale Bibliothek zu einem mächtigen Werkzeug für den literarisch Interessierten werden. ]]></description>
    <link>http://tips.seifenrest.de/software/empfehlungen/3/digitale-bibliothek-des-literaten-wunderhorn.html</link>
    <dc:date>2012-02-07T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html">
   <title>Beschriftung von Passwortfeldern im Feldinhalt</title>
    <description><![CDATA[Es ist üblich die Beschriftung eines Eingabefeld in das Feld zu schreiben, wenn über oder neben dem Feld kein ausreichender Platz ist. Oft sind es Suchschlitze, Newsletter-Abofelder oder Loginbereiche, die auf einer Seite platzsparend angeboten werden. Klickt man nun in das Feld, so wird der Inhalt mittels JavaScript gelöscht, so daß der Benutzer direkt seinen Text eingeben kann.

Bei Passwortfeldern steht man allerdings vor einem Problem: wählt man wie üblich den Typ <code>password</code>, so werden statt Text nur Sternchen angezeigt, nimmt man ein normales Feld, so ist nicht nur die Beschriftung lesbar, sondern anschließend auch das eingegebene Kennwort. Eine erste Idee ist, beim Aktivieren des Feldes nicht nur den Inhalt zu löschen, sondern auch den Feldtyp zu ändern. Leider funktioniert dies nicht in allen Browsern zuverlässig.

Daher empfiehlt sich eine andere Methode, die in den gängigen Browsern (Opera, Firefox und sogar IE) funktioniert. Statt des Passwortfeldes wird ein normales Eingabefeld mit dem Inhalt &quot;Passwort&quot; o.ä. angezeigt. Aktiviert man nun das Passwortfeld, so wird dieses unsichtbar gemacht, ein echtes Passwortfeld an dieser Stelle angeboten und der Eingabefokus auf dieses neue Feld gesetzt. Die Eingabe des Benutzers erfolgt somit in einem echten Passwortfeld und das Kennwort ist nicht sichtbar.

Die meisten Benutzer aktivieren ein Feld durch Klicken, um Text einzugeben. Trotzdem sollte man nicht auf das Ereignis <code>onclick</code> reagieren, sondern auf <code>onfocus</code>. Dieses tritt nämlich nicht nur beim Klicken auf das Feld ein, sondern auch wenn mittels TAB-Taste darauf gesprungen wird.

Eine mögliche Realisierung in HTML und JavaScript:

<code>
...
&lt;input type=&quot;text&quot; name=&quot;falschesfeld&quot; id=&quot;falschesfeld&quot; value=&quot;Passwort&quot; onfocus=&quot;wechslePasswortfeld();&quot;&gt;
&lt;input type=&quot;password&quot; name=&quot;passwortfeld&quot; id=&quot;passwortfeld&quot;&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

document.getElementById('passwortfeld').style.display = 'none';

function wechslePasswortfeld() {
  document.getElementById('falschesfeld').style.display='none';
  document.getElementById('passwortfeld').style.display='inline';
  document.getElementById('passwortfeld').focus();
}

&lt;/script&gt;
...
</code>  ]]></description>
    <link>http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html</link>
    <dc:date>2012-02-06T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/software/empfehlungen/15/opera-besser-als-firefox-und-ie.html">
   <title>Opera - besser als Firefox und IE?</title>
    <description><![CDATA[Die Frage, welches der beste Browser ist, kann man kaum objektiv beantworten. Hier spielen sowohl Geschmäcker, als auch Bedürfnisse des Benutzers eine Rolle. Mein Lieblingsbrowser ist jedenfalls <a href="http://www.opera.com/" rel="nofollow">Opera</a>. Der Browser der norwegischen Softwareschmiede ist zwar nicht Open Source, aber kostenlos erhältlich.

Die Hauptvorteile von Opera (ich beziehe mich auf Version 9.0) sind für mich:
 * die umfassende und weitestgehend korrekte Unterstützung der Webstandards (HTML und CSS 2.1)
 * seine Geschwindigkeit und sein geringer Ressourcenverbrauch
 * der integrierte Mailclient
 * die vielen Zusatzfunktionen wie Zoom, Kleinbildschirmdarstellung, Notizfunktion, Werbeblocker, Navigationstoolbar etc.

Der erste Punkt ist das entscheidende Merkmal eines modernen Browsers. Insofern scheidet der Internet Explorer von vornherein aus, da er in der aktuellen Version (6.0) CSS nicht nur unvollständig und fehlerhaft, sondern teilweise bewußt falsch interpretiert. Natürlich haben auch Opera und Firefox noch kleinere Fehler oder Schwächen in der Darstellung von CSS - diese sind jedoch vernachlässigbar und werden - sofern erkannt - meist in den neuen Versionen korrigiert. Opera ist dem aktuellen Firefox in Punkto CSS überlegen, so erfüllt er den ACID-Test, mit dem die CSS-Kompatibilität getestet wird.

Reiner Browser, oder komplette Websuite mit E-Mail, Chat, BitTorrent etc. - diese Frage ist eine reine Geschmacksache. Firefox konzentriert sich in der Grundkonfiguration nur aufs Webbrowsen und wirkt daher schlichter, vielleicht auch einfacher zu bedienen. Schaut man sich hingegen die Downloadgröße an, so ist Operas Installationsdatei trotz des großen Funktionsumfangs kleiner als die von Firefox.

Die meisten nützlichen Zusatzfunktionen, die Opera schon an Bord hat, können bei Firefox als Extensions nachinstalliert werden. Und es gibt manche Erweiterung, die man auch bei Opera vielleicht gerne sehen würde. Leider kommt es immer wieder vor, daß einige der Erweiterungen plötzlich mit einer neuen Version nicht mehr harmonieren oder gar nicht mehr funktionieren.]]></description>
    <link>http://tips.seifenrest.de/software/empfehlungen/15/opera-besser-als-firefox-und-ie.html</link>
    <dc:date>2012-02-05T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html">
   <title>Beschriftung von Passwortfeldern im Feldinhalt</title>
    <description><![CDATA[Es ist üblich die Beschriftung eines Eingabefeld in das Feld zu schreiben, wenn über oder neben dem Feld kein ausreichender Platz ist. Oft sind es Suchschlitze, Newsletter-Abofelder oder Loginbereiche, die auf einer Seite platzsparend angeboten werden. Klickt man nun in das Feld, so wird der Inhalt mittels JavaScript gelöscht, so daß der Benutzer direkt seinen Text eingeben kann.

Bei Passwortfeldern steht man allerdings vor einem Problem: wählt man wie üblich den Typ <code>password</code>, so werden statt Text nur Sternchen angezeigt, nimmt man ein normales Feld, so ist nicht nur die Beschriftung lesbar, sondern anschließend auch das eingegebene Kennwort. Eine erste Idee ist, beim Aktivieren des Feldes nicht nur den Inhalt zu löschen, sondern auch den Feldtyp zu ändern. Leider funktioniert dies nicht in allen Browsern zuverlässig.

Daher empfiehlt sich eine andere Methode, die in den gängigen Browsern (Opera, Firefox und sogar IE) funktioniert. Statt des Passwortfeldes wird ein normales Eingabefeld mit dem Inhalt &quot;Passwort&quot; o.ä. angezeigt. Aktiviert man nun das Passwortfeld, so wird dieses unsichtbar gemacht, ein echtes Passwortfeld an dieser Stelle angeboten und der Eingabefokus auf dieses neue Feld gesetzt. Die Eingabe des Benutzers erfolgt somit in einem echten Passwortfeld und das Kennwort ist nicht sichtbar.

Die meisten Benutzer aktivieren ein Feld durch Klicken, um Text einzugeben. Trotzdem sollte man nicht auf das Ereignis <code>onclick</code> reagieren, sondern auf <code>onfocus</code>. Dieses tritt nämlich nicht nur beim Klicken auf das Feld ein, sondern auch wenn mittels TAB-Taste darauf gesprungen wird.

Eine mögliche Realisierung in HTML und JavaScript:

<code>
...
&lt;input type=&quot;text&quot; name=&quot;falschesfeld&quot; id=&quot;falschesfeld&quot; value=&quot;Passwort&quot; onfocus=&quot;wechslePasswortfeld();&quot;&gt;
&lt;input type=&quot;password&quot; name=&quot;passwortfeld&quot; id=&quot;passwortfeld&quot;&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

document.getElementById('passwortfeld').style.display = 'none';

function wechslePasswortfeld() {
  document.getElementById('falschesfeld').style.display='none';
  document.getElementById('passwortfeld').style.display='inline';
  document.getElementById('passwortfeld').focus();
}

&lt;/script&gt;
...
</code>  ]]></description>
    <link>http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html</link>
    <dc:date>2012-02-04T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/html/2/html-strict-und-das-target-attribut.html">
   <title>HTML Strict und das target-Attribut</title>
    <description><![CDATA[In der Version HTML 4.01 Strict ist das target-Attribut bei Links nicht mehr erlaubt. Schließlich soll der Benutzer selber entscheiden dürfen wie und wo sich eine neue Seite öffnen soll, wenn er auf einen Link klickt.

Manchmal will oder muß man jedoch Links so präparieren, daß sie sich in einem neuen Fenster öffnen - sei es nun sinnvoll oder auch nur der Wunsch des Auftraggebers. Wenn man nun zu den Links das Attribut <code>target=&quot;_blank&quot;</code> hinzufügt, ist das Dokument nicht mehr <em>HTML 4.01 Strict</em> valide und sollte konsequenterweise als <em>HTML 4.01 Transitional</em> gekennzeichnet werden.

Wer jedoch sein Dokument trotzdem Strict haben möchte, kann auf folgenden Trick zugreifen:
Die entsprechenden Links erhalten eine Klassenbezeichnung, z.B. <code>class=&quot;extern&quot;</code>. Nach dem Laden des Dokuments werden mit Hilfe von JavaScript alle Links durchlaufen.  Bei denjenigen, die die Klasse &quot;extern&quot; haben, wird mittels der Methode <code>SetAttribute()</code> das target-Attribut gesetzt.

Vorteil der Methode:
 - das HTML-Markup bleibt HTML 4.01 Strict
 - will man das Öffnen im neuen Fenster generell abstellen, muß man nur eine JavaScript-Datei ändern
 - ggf. kann man die JS-Funktion noch erweitern, sodaß die Benutzer einstellen können, ob die Links im eigenen Fenster geöffnet werden

Nachteile:
 - das Öffnen im fremden Fenster funktioniert nicht mit ausgeschaltetem JavaScript
 - von einem puristischen Standpunkt aus gesehen, gibt es auch in der internen Repräsentation (DOM) eines Strict-Documents kein target-Attribut.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/html/2/html-strict-und-das-target-attribut.html</link>
    <dc:date>2012-02-03T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/software/empfehlungen/3/digitale-bibliothek-des-literaten-wunderhorn.html">
   <title>Digitale Bibliothek - des Literaten Wunderhorn</title>
    <description><![CDATA[Seit etwa 10 Jahren veröffentlicht der DirectMedia-Verlag in seiner Reihe <a href="http://www.digitale-bibliothek.de/" rel="nofollow"><strong>Digitale Bibliothek</strong></a> Werke bekannter Schriftsteller, Philosophen und Wissenschaftler sowie Lexika, Enzyklopädien u. ä. in digitaler Form auf CD bzw. DVD.
 
In der über hundert Werke umfassenden Bibliothek finden sich viele interessante Ausgaben, doch will ich hier nicht Auswahl und inhaltliche Qualität, sondern vielmehr die technischen Aspekte, insbesondere die Azeige- und Verwaltungssoftware <strong>Digibib 4</strong> beleuchten.
 
Die Installation der Software erfolgt unkompliziert und belegt knapp 10 MB auf der Festplatte. Die Text- und Bilddaten werden von der jeweiligen CD geladen, sofern man diese nicht auch auf Festplatte installiert. Eine Installation auf Festplatte ist jedoch erst nach der Online-Registrierung möglich. Dann können beliebig viele Bände installiert und gleichzeitig genutzt werden.

Die Benutzung der Anzeigesoftware ist sehr einfach und intuitiv. Einige der hervorragenen Merkmale sind:
 - Volltextsuche im gesamten Text (bei Festplatteninstallation auch bandübergreifend)
 - Suche kann exakt, schreibweisentolerant oder sogar mit Platzhaltern durchgeführt werden, außerdem können boolsche Operatoren benutzt werden
 - Export von bis zu 100 Seiten in die Zwischenablage (anders als im Handbuch vermerkt werden in der neuesten <a href="http://www.digitale-bibliothek.de/scripts/ts.dll?s=1&amp;id=9A64E9CE&amp;mp=/pi/6/&amp;sc=Software" rel="nofollow">Version 4.01.146</a> auch Sonderzeichen exportiert)
 - Textstellen können verschiedenfarbig markiert und mit Kommentaren versehen werden
 - bis zu 250 Seiten könne gleichzeitig gedruckt werden.

Die Such-, Markier- und Exportfunktionen lassen die Digitale Bibliothek zu einem mächtigen Werkzeug für den literarisch Interessierten werden. ]]></description>
    <link>http://tips.seifenrest.de/software/empfehlungen/3/digitale-bibliothek-des-literaten-wunderhorn.html</link>
    <dc:date>2012-02-02T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/sonstiges/allerlei/11/passwoerter-sicher-und-leicht-zu-merken.html">
   <title>Paßwörter - sicher und leicht zu merken</title>
    <description><![CDATA[Ein Paßwort sollte einerseits schwer zu erraten, andererseits leicht zu merken sein. Man sollte nie Namen oder Wörter als Paßwort wählen, da diese durch sogenannte Wörterbuchattacken leicht zu knacken sind. Bei einer Wörterbuchattacke probiert ein Programm automatisch alle Wörter einer Liste (z.B. Wörterbücher, Namenslisten) durch. Somit sind nur solche Paßwörter sicher, die aus &quot;unverständlichen&quot; Kombinationen von Buchstaben, Zahlen und Sonderzeichen bestehen. Zudem sollten die Paßwörter auch nicht zu kurz sein - mindestens acht Zeichen - da sie sonst ebenfalls durch automatisches Ausprobieren geknackt werden können. 

Hinsichtlich der Sonderzeichen ist zu bedenken, daß man vielleicht mal vor einer anderssprachigen Tastatur sitzt und beispielsweise dann keine deutschen Umlaute zur Verfügung hat. Daher sollte man höchstens gängige Zeichen wie <code>.,-/;</code> etc. verwenden. Allerdings können diese bei gewissen Tastatureinstellungen auch auf anderen Tasten als aufgedruckt liegen (z.B. muß man für den Doppelpunkt bei englischem Tastaturtreiber auf das ö der deutschen Tastatur drücken). 

Ein hinreichend sicheres und technisch problemlos zu handhabendes Paßwort besteht demnach idealerweise aus einem Mix von Klein- und Großbuchstaben a-z bzw. A-Z sowie Ziffern 0-9 und hat eine Länge von mindestens acht Zeichen: <code>dRp8t4Zk</code>, <code>ppO33f77paQ</code> etc.

Diese Paßwörter haben jedoch einen gravierenden Nachteil: man kann sie sich relativ schlecht merken. Man kann sie zwar aufschreiben und an sicherem Ort hinterlegen, wer jedoch den Zettel bei sich trägt, geht ein erhöhtes Risiko ein. Da hilft also nur Auswendiglernen und das Vertrauen auf das eigene Gedächtnis.

Doch es gibt noch eine gleichsam einfache wie effektive Lösung dieses Dilemmas. Man sucht ein Satz, den man sich leicht merken kann, und nimmt die Anfangsbuchstaben dieses Satzes. Wenn der Satz Zahlen enthält, so kann man deren Ziffern nehmen und hat ein Paßwort, das obigen Kriterien genügt.

Beispiele gefällig:
 - <em>Er zählt die Häupter seiner Lieben, und siehe da, es waren sieben.</em> - <code>EzdHsLusdew7</code>
 - <em>Carl Lewis läuft 100 Meter in 10 Sekunden.</em> - <code>CLl100Mi10S</code>
 - <em>Ich habe mir ein sehr sicheres Paßwort ausgedacht.</em> - <code>Ihm1ssPa</code>
 - <em>Drei Wochen war der Frosch so krank! Jetzt raucht er wieder, Gott sei Dank!</em> - <code>3WwdFskJrewGsD</code>]]></description>
    <link>http://tips.seifenrest.de/sonstiges/allerlei/11/passwoerter-sicher-und-leicht-zu-merken.html</link>
    <dc:date>2012-02-01T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/html/13/vorschlaege-bei-eingabefeldern-verhindern.html">
   <title>Vorschläge bei Eingabefeldern verhindern</title>
    <description><![CDATA[Manche Browser haben die häufig nützliche Funktion, einen beim Ausfüllen eines Formulars zu unterstützen, indem sie automatisch eine Liste bereits eingegebener Begriffe anzeigen. Der Benutzer kann dieses Verhalten bei den meisten Browsern ein oder ausschalten. In gewissen Fällen ist diese Funktion jedoch kontraproduktiv - beispielsweise wenn der Seitenbetreiber dem Benutzer beim Ausfüllen eigene Vorschläge machen will. So zeigt beispielsweise Google Suggest beim Eintippen eines Suchwortes automatisch passende Suchbegriffe unterhalb des Eingabefeldes an. Damit diese Anzeige nicht mit der Anzeige der Browservorschläge kollidiert, müssen die Browservorschläge für das Feld ausgeschaltet werden. Dafür haben die meisten Browser das Attribut <code>autocomplete</code> vorgesehen. Mit <code>autocomplete=&quot;off&quot;</code> schaltet man das Aufklappen der Liste bereits eingegebener Begriffe aus.

Diese Methode hat jedoch einen gravierenden Nachteil: das Attribut <code>autocomplete</code> ist kein gültiges HTML-Attribut und Seiten, die dieses benutzen sind somit nicht valide. Wer seine Seiten also valide halten will, muß auf JavaScript ausweichen. Zwar haben manche Benutzer JavaScript deaktiviert, aber da man das automatische Ausfüllen ja meistens deshalb ausschalten will, weil man eigene Vorschläge mit JavaScript (z.B. AJAX) anzeigen will, ist dies keine wesentliche Einschränkung.

Statt den Quelltext durch Angabe von <code>autocomplete=&quot;off&quot;</code> zu verhunzen, kann man dies nach JavaScript auslagern. Dafür muß man an geeigneter Stelle (z.B. nach <code>onload</code>) folgende Anweisung ausführen:
<code>document.getElementById('id_des_eingabefeldes').setAttribute('autocomplete','off');</code>]]></description>
    <link>http://tips.seifenrest.de/webpublishing/html/13/vorschlaege-bei-eingabefeldern-verhindern.html</link>
    <dc:date>2012-01-31T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/sonstiges/latex/8/nuetzliche-pakete-fuer-tex-bzw-latex.html">
   <title>Nützliche Pakete für TeX bzw. LaTeX</title>
    <description><![CDATA[Bei TeX braucht man sich nicht um die Formatierung zu kümmern, das erledigt TeX automatisch. Doch ab und zu und immer öfter ist man mit der Standardformatierung nicht mehr zufrieden - seien es nun die Seitenränder oder die Kopfzeilen, die Überschriften oder die Schriftart. Viele dieser Einstellungen kann man mit diversen TeX- bwz. LaTex-Paketen vornehmen.

Ein Paket wird mit dem Befehl <code>\usepackage[wahlweise Liste von Optionen]{Paketname}</code> eingebunden. Welche Parameter durch das Paket automatisch geändert und welche zusätzlichen Befehle zur Verfügung gestellt werden, steht meistens in der Beschreibung des Pakets.

Wer Texte in Deutsch schreibt, sollte das Paket <em>german</em> (<code>\usepackage{german}</code>) oder <em>babel</em> mit der Option <code>german</code> (<code>\usepackage[german]{babel}</code>) aufrufen; das Paket <em>fontenc</em> (<code>\usepackage[ T1]{fontenc}</code>) ermöglicht zusätzlich die Silbentrennung bei Wörtern, die Umlaute enthalten. Will man die Umlaute und ß direkt über die Tastatur eingeben, muß noch das Paket <em>inputenc</em> mit der entsprechenden Zeichenkodierung geladen werden (üblich ist <code>\usepackage[latin1]{inputenc}</code>).

Seitenränder kann man mit dem Paket <em>geometry</em> ändern, das Aussehen von Kapitel- und Abschnittsüberschriften mit <em>titlesec</em>. Kopf und Fußzeilen erstellt und ändert man bei Bedarf mit <em>fancyhdr</em>, und einzelne Seiten werden mit Hilfe von <em>lscape</em> im Querformat gesetzt.

Wer Grafiken einbinden muß, greift gerne auf <em>graphicx</em> zurück. Der Autor mathematischer Arbeiten weiß die Pakete <em>amsmath</em>, <em>amsthm</em> u. ä. zu schätzen. Zwar kann man mit diesen Paketen auch simple <a href="http://www.guntherkrauss.de/computer/tex/diagramme.html" rel="nofollow">kommutative Diagramme</a> erstellen, für kompliziertere Diagramme eignet sich <em>Xy-pic</em> besser, das auch für einfachere zweidimensionale Zeichnungen gut zu gebrauchen ist. Für kompliziertere Zeichnungen ist es unter Umständen günstiger, die Zeichnung mit einem externen Programm zu erstellen, und sie dann entweder als Grafikdatei oder als Quelltext einzubinden. Unter Linux gibt es dafür das Programm <em>xfig</em>, das Grafiken auch als LaTeX-Quelltext exportieren kann.

Vorgabemäßig werden LaTeX-Dokumente in der Schriftart <em>Computer Modern</em> gesetzt. Am einfachsten läßt sich die Schrift mit einem entsprechenden Paket ändern. Ich bevorzuge zum Beispiel die Schrift <em>Palatino</em> und benutze dafür das Paket <em>pxfonts</em>, da <em>palatino</em> nur den Text ändert und die Formeln nicht in derselben Schriftart setzt. Für Freunde der weitverbreiteten <em>Times New Roman</em> gibt es entsprechend <em>txfonts</em>.

Grundsätzlich sollte man beim Laden von Paketen darauf achten, ob sie in einer bestimmten Reihenfolge aufgerufen werden müssen, oder ob einige sich sogar gegenseitig ausschließen.]]></description>
    <link>http://tips.seifenrest.de/sonstiges/latex/8/nuetzliche-pakete-fuer-tex-bzw-latex.html</link>
    <dc:date>2012-01-30T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html">
   <title>Richtigen Dateityp mit PHP ausgeben</title>
    <description><![CDATA[PHP sendet im Normalfall die Ausgabedaten immer mit dem MIME-Typ <code>text/html</code>. Wenn Sie mit PHP jedoch ein Bild erzeugen und direkt ausgeben oder XML-Daten ausgeben, dann sollten die Daten auch mit dem richtigen Dateityp gekennzeichnet werden.

In PHP benutzt man dafür den <em>header()</em>-Befehl

<code>header('Content-Type: image/png')</code>

um im <em>HTTP</em>-Header den jeweiligen MIME-Typ der Ausgabedaten zu setzen. 

Der <em>header()</em>-Befehl muß <strong>vor</strong> jeglicher PHP-Ausgabe aufgerufen werden. Wenn vorher schon Daten ausgegeben wurden - z.B. mit dem <em>echo</em>-Befehl, dann wurden die Header-Daten schon versendet und die Daten schon als <em>text/html</em> gekennzeichnet. Beachten Sie auch, daß eine vorherige Ausgabe von Daten auch implizit passieren kann - z.B. durch Leerzeichen, Zeilenumbrüche u. ä. außerhalb von <code>&lt;?php ... ?&gt;</code> oder durch eventuelle Fehler- oder Warnmeldungen des Skriptes.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html</link>
    <dc:date>2012-01-29T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html">
   <title>Richtigen Dateityp mit PHP ausgeben</title>
    <description><![CDATA[PHP sendet im Normalfall die Ausgabedaten immer mit dem MIME-Typ <code>text/html</code>. Wenn Sie mit PHP jedoch ein Bild erzeugen und direkt ausgeben oder XML-Daten ausgeben, dann sollten die Daten auch mit dem richtigen Dateityp gekennzeichnet werden.

In PHP benutzt man dafür den <em>header()</em>-Befehl

<code>header('Content-Type: image/png')</code>

um im <em>HTTP</em>-Header den jeweiligen MIME-Typ der Ausgabedaten zu setzen. 

Der <em>header()</em>-Befehl muß <strong>vor</strong> jeglicher PHP-Ausgabe aufgerufen werden. Wenn vorher schon Daten ausgegeben wurden - z.B. mit dem <em>echo</em>-Befehl, dann wurden die Header-Daten schon versendet und die Daten schon als <em>text/html</em> gekennzeichnet. Beachten Sie auch, daß eine vorherige Ausgabe von Daten auch implizit passieren kann - z.B. durch Leerzeichen, Zeilenumbrüche u. ä. außerhalb von <code>&lt;?php ... ?&gt;</code> oder durch eventuelle Fehler- oder Warnmeldungen des Skriptes.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html</link>
    <dc:date>2012-01-28T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/usability-accessibility/10/so-moegen-suchmaschinen-ihre-seiten.html">
   <title>So mögen Suchmaschinen Ihre Seiten</title>
    <description><![CDATA[Um bei Suchanfragen möglichst gut gefunden zu werden, sollte die Seite <em>suchmaschinenfreundlich</em> sein, d.h. die Suchmaschine soll leicht wie möglich die relevanten Inhalte der Seite indizieren können. Das Wichtigste sind immer noch die Inhalte - wer keine echten Inhalte hat, kann mit diversen Tricks vielleicht die Suchmaschinen überlisten. Die Erfahrung zeigt, daß dies jedoch selten von langer Dauer ist, da die Suchmaschinenbetreiber recht gut diesen Tricks auf die Schliche kommen und häufig die tricksenden Seiten durch schlechte Plazierung bestrafen. 

Gleichzeitig honorieren Suchmaschinen nicht nur echte Inhalte, sondern auch deren optimale Aufbereitung. Hier also einige Tips, wie sie das Suchmaschinenranking Ihrer Seiten verbessern können.

 - Möglichst keine Frames verwenden, da Suchmaschinen sich mit Frameseiten nur schlecht anfreunden.

 - Die Informationen sollten als HTML-Text vorliegen. Bilder, Flash oder mit Javascript generierter Text kann von Suchmaschinen nicht gelesen werden.

 - Seiten sollten aussagekräftige Namen haben. <em>seite12.html</em> oder <em>index.php?cat=12</em> werden in der Regel schlechter plaziert als <em>meerschweinchen.html</em> oder <em>veranstaltung.html</em>.

 - Je mehr Links auf eine Seite zeigen, umso besser wird die Seite in der Regel plaziert. Dabei werden jedoch nur echte <code>&lt;a href=&quot;..&quot;&gt;</code> Links berücksichtigt, Links in JavaScript oder JavaApplets können von den Suchmaschinen nicht berücksichtig werden.

 - Auch die Linkbeschriftung ist wichtig, beispielsweise ist 
<code>Hier sind meine &lt;a href=&quot;urlaub.html&quot; Urlaubsbilder&lt;/a&gt;</code> sehr gut, 
<code>Meine Urlaubsbilder sind &lt;a href=&quot;urlaub.html&quot;&gt;hier&lt;/a&gt;</code> schlecht,
<code>&lt;a href=&quot;urlaub.html&quot;&gt;&lt;img src=&quot;strand.jpg&quot;&gt;&lt;/a&gt;</code> sehr schlecht.

 - Überschriften sollten als solche durch semantisches Markup (<code>h1</code> - <code>h6</code>) gekennzeichnet werden, wichtige Stichworte entsprechend hervorgehoben werden.
<code>&lt;font size=4 color=red&gt; Sommerurlaub&lt;/font&gt;</code> - der Suchroboter kann nicht erkennen, daß es sich hier um eine Überschrift handelt, er sieht ja nicht, daß der Text groß und rot ist. 
<code>&lt;h1&gt;Sommerurlaub&lt;/h1&gt;</code> - an dem <code>h1</code> erkennt der Suchroboter, daß es eine Überschrift erster Stufe  und somit ein wichtiger Begriff ist.
<code>&lt;b&gt;Sylt&lt;/b&gt;</code> - für den Suchroboter ist das nur fetter Text. 
<code>&lt;strong&gt;Sylt&lt;/strong&gt;</code> - hier weiß er, daß es sich um wichtigen (stark betonten) Text handelt. 

 - Wichtig ist auch der Seitentitel <code>title</code> - wird er doch beim Suchergebnis als erstes angezeigt. 
Mit <code>&lt;title&gt;Neue Seite 1&lt;/title&gt;</code> unterscheidet man sich nicht von den anderen 14 Millionen Seiten. &quot;Seite von Hans Dampf&quot; ist da schon besser, &quot;Modelleisenbahnen - Seite von Hans Dampf&quot; ist - wenn Sie über Modelleisenbahnen berichten - noch besser.

<code>&lt;meta name=&quot;description&quot; content=&quot;Kurze, präzise Beschreibung der Seite&quot;&gt;</code> ist wichtig, weil diese Beschreibung oft bei dem Suchergebnis angezeigt wird.

 - Auf <code>&lt;meta name=&quot;keywords&quot; content=&quot;Geldverdienen, reich, kostenlos, Sex, MP3, Filme, Britney Spears&quot;&gt;</code> kann man mittlerweile verzichten, da die Suchmaschinen die Stichwortliste kaum noch berücksichtigen, denn mit den &quot;keywords&quot; wurde früher häufig Schindluder getrieben. Sie sollten also wirklich nur relevante Stichworte angeben.

 - Je mehr Text auf der Seite ist, umso häufiger wird sie in den Index aufgenommen. Die Verwendung von Synonymen bei wichtigen Stichworten kann auch von Vorteil sein, wer mal Briefträger, mal Postbote in seinem Text schreibt, wird unter beiden Stichworten gefunden. Wer jedoch meint, durch eine lange Liste von Stichwörtern und möglichen Synonymen sich hochmogeln zu können, erreicht unter Umständen den gegeteiligen Effekt:
Suchmaschinen erkennen mittlerweile schon, ob Stichworte Bestandteil des Textes sind, oder nur Teil einer Liste!

<strong>Fazit:</strong> 
Wichtig sind erstens Inhalte - zweitens, daß diese Inhalte für Suchmaschinen zugänglich sind - drittens, daß der Inhalt richtig strukturiert und mit den passenden HTML-Elementen ausgezeichnet ist. Und an einer informativen, technisch fehlerfreien, benutzerfreundlichen und lebhaft geschriebenen Seite erfreuen sich nicht nur Suchmaschinen, sondern auch Ihre Besucher.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/usability-accessibility/10/so-moegen-suchmaschinen-ihre-seiten.html</link>
    <dc:date>2012-01-27T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/sonstiges/allerlei/11/passwoerter-sicher-und-leicht-zu-merken.html">
   <title>Paßwörter - sicher und leicht zu merken</title>
    <description><![CDATA[Ein Paßwort sollte einerseits schwer zu erraten, andererseits leicht zu merken sein. Man sollte nie Namen oder Wörter als Paßwort wählen, da diese durch sogenannte Wörterbuchattacken leicht zu knacken sind. Bei einer Wörterbuchattacke probiert ein Programm automatisch alle Wörter einer Liste (z.B. Wörterbücher, Namenslisten) durch. Somit sind nur solche Paßwörter sicher, die aus &quot;unverständlichen&quot; Kombinationen von Buchstaben, Zahlen und Sonderzeichen bestehen. Zudem sollten die Paßwörter auch nicht zu kurz sein - mindestens acht Zeichen - da sie sonst ebenfalls durch automatisches Ausprobieren geknackt werden können. 

Hinsichtlich der Sonderzeichen ist zu bedenken, daß man vielleicht mal vor einer anderssprachigen Tastatur sitzt und beispielsweise dann keine deutschen Umlaute zur Verfügung hat. Daher sollte man höchstens gängige Zeichen wie <code>.,-/;</code> etc. verwenden. Allerdings können diese bei gewissen Tastatureinstellungen auch auf anderen Tasten als aufgedruckt liegen (z.B. muß man für den Doppelpunkt bei englischem Tastaturtreiber auf das ö der deutschen Tastatur drücken). 

Ein hinreichend sicheres und technisch problemlos zu handhabendes Paßwort besteht demnach idealerweise aus einem Mix von Klein- und Großbuchstaben a-z bzw. A-Z sowie Ziffern 0-9 und hat eine Länge von mindestens acht Zeichen: <code>dRp8t4Zk</code>, <code>ppO33f77paQ</code> etc.

Diese Paßwörter haben jedoch einen gravierenden Nachteil: man kann sie sich relativ schlecht merken. Man kann sie zwar aufschreiben und an sicherem Ort hinterlegen, wer jedoch den Zettel bei sich trägt, geht ein erhöhtes Risiko ein. Da hilft also nur Auswendiglernen und das Vertrauen auf das eigene Gedächtnis.

Doch es gibt noch eine gleichsam einfache wie effektive Lösung dieses Dilemmas. Man sucht ein Satz, den man sich leicht merken kann, und nimmt die Anfangsbuchstaben dieses Satzes. Wenn der Satz Zahlen enthält, so kann man deren Ziffern nehmen und hat ein Paßwort, das obigen Kriterien genügt.

Beispiele gefällig:
 - <em>Er zählt die Häupter seiner Lieben, und siehe da, es waren sieben.</em> - <code>EzdHsLusdew7</code>
 - <em>Carl Lewis läuft 100 Meter in 10 Sekunden.</em> - <code>CLl100Mi10S</code>
 - <em>Ich habe mir ein sehr sicheres Paßwort ausgedacht.</em> - <code>Ihm1ssPa</code>
 - <em>Drei Wochen war der Frosch so krank! Jetzt raucht er wieder, Gott sei Dank!</em> - <code>3WwdFskJrewGsD</code>]]></description>
    <link>http://tips.seifenrest.de/sonstiges/allerlei/11/passwoerter-sicher-und-leicht-zu-merken.html</link>
    <dc:date>2012-01-26T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/html/2/html-strict-und-das-target-attribut.html">
   <title>HTML Strict und das target-Attribut</title>
    <description><![CDATA[In der Version HTML 4.01 Strict ist das target-Attribut bei Links nicht mehr erlaubt. Schließlich soll der Benutzer selber entscheiden dürfen wie und wo sich eine neue Seite öffnen soll, wenn er auf einen Link klickt.

Manchmal will oder muß man jedoch Links so präparieren, daß sie sich in einem neuen Fenster öffnen - sei es nun sinnvoll oder auch nur der Wunsch des Auftraggebers. Wenn man nun zu den Links das Attribut <code>target=&quot;_blank&quot;</code> hinzufügt, ist das Dokument nicht mehr <em>HTML 4.01 Strict</em> valide und sollte konsequenterweise als <em>HTML 4.01 Transitional</em> gekennzeichnet werden.

Wer jedoch sein Dokument trotzdem Strict haben möchte, kann auf folgenden Trick zugreifen:
Die entsprechenden Links erhalten eine Klassenbezeichnung, z.B. <code>class=&quot;extern&quot;</code>. Nach dem Laden des Dokuments werden mit Hilfe von JavaScript alle Links durchlaufen.  Bei denjenigen, die die Klasse &quot;extern&quot; haben, wird mittels der Methode <code>SetAttribute()</code> das target-Attribut gesetzt.

Vorteil der Methode:
 - das HTML-Markup bleibt HTML 4.01 Strict
 - will man das Öffnen im neuen Fenster generell abstellen, muß man nur eine JavaScript-Datei ändern
 - ggf. kann man die JS-Funktion noch erweitern, sodaß die Benutzer einstellen können, ob die Links im eigenen Fenster geöffnet werden

Nachteile:
 - das Öffnen im fremden Fenster funktioniert nicht mit ausgeschaltetem JavaScript
 - von einem puristischen Standpunkt aus gesehen, gibt es auch in der internen Repräsentation (DOM) eines Strict-Documents kein target-Attribut.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/html/2/html-strict-und-das-target-attribut.html</link>
    <dc:date>2012-01-25T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/software/empfehlungen/4/progdvb.html">
   <title>ProgDVB</title>
    <description><![CDATA[<a href="http://www.progdvb.com" rel="nofollow">ProgDVB</a> ist ein kostenloses Programm zur Anzeige von DVB-Fernsehprogrammen. Es unterstützt alle DVB-S und DVB-T Karten, die BDA-Treiber zur Verfügung stellen. Wer also mit der Anzeigesoftware seiner TV-Karte nicht zufrieden ist, hat in ProgDVB eine gute und kostenlose Alternative für Windows-PCs. Mit ProgDVB inklusive seiner diversen Plugin kann man
 - DVB Programme im Fenster oder Vollbild sehen.
 - Sendungen aufzeichnen oder verzögert anschauen (Timeshift).
 - Videotext betrachten (auch als OSD, d.h. Texte werden über dem Fernseh(voll)bild eingeblendet).
 - das aktuelle Fernsehprogramm via EPG betrachten und Aufzeichnungen programmieren]]></description>
    <link>http://tips.seifenrest.de/software/empfehlungen/4/progdvb.html</link>
    <dc:date>2012-01-24T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/usability-accessibility/10/so-moegen-suchmaschinen-ihre-seiten.html">
   <title>So mögen Suchmaschinen Ihre Seiten</title>
    <description><![CDATA[Um bei Suchanfragen möglichst gut gefunden zu werden, sollte die Seite <em>suchmaschinenfreundlich</em> sein, d.h. die Suchmaschine soll leicht wie möglich die relevanten Inhalte der Seite indizieren können. Das Wichtigste sind immer noch die Inhalte - wer keine echten Inhalte hat, kann mit diversen Tricks vielleicht die Suchmaschinen überlisten. Die Erfahrung zeigt, daß dies jedoch selten von langer Dauer ist, da die Suchmaschinenbetreiber recht gut diesen Tricks auf die Schliche kommen und häufig die tricksenden Seiten durch schlechte Plazierung bestrafen. 

Gleichzeitig honorieren Suchmaschinen nicht nur echte Inhalte, sondern auch deren optimale Aufbereitung. Hier also einige Tips, wie sie das Suchmaschinenranking Ihrer Seiten verbessern können.

 - Möglichst keine Frames verwenden, da Suchmaschinen sich mit Frameseiten nur schlecht anfreunden.

 - Die Informationen sollten als HTML-Text vorliegen. Bilder, Flash oder mit Javascript generierter Text kann von Suchmaschinen nicht gelesen werden.

 - Seiten sollten aussagekräftige Namen haben. <em>seite12.html</em> oder <em>index.php?cat=12</em> werden in der Regel schlechter plaziert als <em>meerschweinchen.html</em> oder <em>veranstaltung.html</em>.

 - Je mehr Links auf eine Seite zeigen, umso besser wird die Seite in der Regel plaziert. Dabei werden jedoch nur echte <code>&lt;a href=&quot;..&quot;&gt;</code> Links berücksichtigt, Links in JavaScript oder JavaApplets können von den Suchmaschinen nicht berücksichtig werden.

 - Auch die Linkbeschriftung ist wichtig, beispielsweise ist 
<code>Hier sind meine &lt;a href=&quot;urlaub.html&quot; Urlaubsbilder&lt;/a&gt;</code> sehr gut, 
<code>Meine Urlaubsbilder sind &lt;a href=&quot;urlaub.html&quot;&gt;hier&lt;/a&gt;</code> schlecht,
<code>&lt;a href=&quot;urlaub.html&quot;&gt;&lt;img src=&quot;strand.jpg&quot;&gt;&lt;/a&gt;</code> sehr schlecht.

 - Überschriften sollten als solche durch semantisches Markup (<code>h1</code> - <code>h6</code>) gekennzeichnet werden, wichtige Stichworte entsprechend hervorgehoben werden.
<code>&lt;font size=4 color=red&gt; Sommerurlaub&lt;/font&gt;</code> - der Suchroboter kann nicht erkennen, daß es sich hier um eine Überschrift handelt, er sieht ja nicht, daß der Text groß und rot ist. 
<code>&lt;h1&gt;Sommerurlaub&lt;/h1&gt;</code> - an dem <code>h1</code> erkennt der Suchroboter, daß es eine Überschrift erster Stufe  und somit ein wichtiger Begriff ist.
<code>&lt;b&gt;Sylt&lt;/b&gt;</code> - für den Suchroboter ist das nur fetter Text. 
<code>&lt;strong&gt;Sylt&lt;/strong&gt;</code> - hier weiß er, daß es sich um wichtigen (stark betonten) Text handelt. 

 - Wichtig ist auch der Seitentitel <code>title</code> - wird er doch beim Suchergebnis als erstes angezeigt. 
Mit <code>&lt;title&gt;Neue Seite 1&lt;/title&gt;</code> unterscheidet man sich nicht von den anderen 14 Millionen Seiten. &quot;Seite von Hans Dampf&quot; ist da schon besser, &quot;Modelleisenbahnen - Seite von Hans Dampf&quot; ist - wenn Sie über Modelleisenbahnen berichten - noch besser.

<code>&lt;meta name=&quot;description&quot; content=&quot;Kurze, präzise Beschreibung der Seite&quot;&gt;</code> ist wichtig, weil diese Beschreibung oft bei dem Suchergebnis angezeigt wird.

 - Auf <code>&lt;meta name=&quot;keywords&quot; content=&quot;Geldverdienen, reich, kostenlos, Sex, MP3, Filme, Britney Spears&quot;&gt;</code> kann man mittlerweile verzichten, da die Suchmaschinen die Stichwortliste kaum noch berücksichtigen, denn mit den &quot;keywords&quot; wurde früher häufig Schindluder getrieben. Sie sollten also wirklich nur relevante Stichworte angeben.

 - Je mehr Text auf der Seite ist, umso häufiger wird sie in den Index aufgenommen. Die Verwendung von Synonymen bei wichtigen Stichworten kann auch von Vorteil sein, wer mal Briefträger, mal Postbote in seinem Text schreibt, wird unter beiden Stichworten gefunden. Wer jedoch meint, durch eine lange Liste von Stichwörtern und möglichen Synonymen sich hochmogeln zu können, erreicht unter Umständen den gegeteiligen Effekt:
Suchmaschinen erkennen mittlerweile schon, ob Stichworte Bestandteil des Textes sind, oder nur Teil einer Liste!

<strong>Fazit:</strong> 
Wichtig sind erstens Inhalte - zweitens, daß diese Inhalte für Suchmaschinen zugänglich sind - drittens, daß der Inhalt richtig strukturiert und mit den passenden HTML-Elementen ausgezeichnet ist. Und an einer informativen, technisch fehlerfreien, benutzerfreundlichen und lebhaft geschriebenen Seite erfreuen sich nicht nur Suchmaschinen, sondern auch Ihre Besucher.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/usability-accessibility/10/so-moegen-suchmaschinen-ihre-seiten.html</link>
    <dc:date>2012-01-23T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html">
   <title>Richtigen Dateityp mit PHP ausgeben</title>
    <description><![CDATA[PHP sendet im Normalfall die Ausgabedaten immer mit dem MIME-Typ <code>text/html</code>. Wenn Sie mit PHP jedoch ein Bild erzeugen und direkt ausgeben oder XML-Daten ausgeben, dann sollten die Daten auch mit dem richtigen Dateityp gekennzeichnet werden.

In PHP benutzt man dafür den <em>header()</em>-Befehl

<code>header('Content-Type: image/png')</code>

um im <em>HTTP</em>-Header den jeweiligen MIME-Typ der Ausgabedaten zu setzen. 

Der <em>header()</em>-Befehl muß <strong>vor</strong> jeglicher PHP-Ausgabe aufgerufen werden. Wenn vorher schon Daten ausgegeben wurden - z.B. mit dem <em>echo</em>-Befehl, dann wurden die Header-Daten schon versendet und die Daten schon als <em>text/html</em> gekennzeichnet. Beachten Sie auch, daß eine vorherige Ausgabe von Daten auch implizit passieren kann - z.B. durch Leerzeichen, Zeilenumbrüche u. ä. außerhalb von <code>&lt;?php ... ?&gt;</code> oder durch eventuelle Fehler- oder Warnmeldungen des Skriptes.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html</link>
    <dc:date>2012-01-22T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/css/1/hintergrundbilder-einbinden.html">
   <title>Hintergrundbilder einbinden</title>
    <description><![CDATA[Hintergrundbilder werden mit der Anweisung

<code>background-image:url('pfad/zum/bild.jpg')</code>

eingebunden]]></description>
    <link>http://tips.seifenrest.de/webpublishing/css/1/hintergrundbilder-einbinden.html</link>
    <dc:date>2012-01-21T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/software/empfehlungen/4/progdvb.html">
   <title>ProgDVB</title>
    <description><![CDATA[<a href="http://www.progdvb.com" rel="nofollow">ProgDVB</a> ist ein kostenloses Programm zur Anzeige von DVB-Fernsehprogrammen. Es unterstützt alle DVB-S und DVB-T Karten, die BDA-Treiber zur Verfügung stellen. Wer also mit der Anzeigesoftware seiner TV-Karte nicht zufrieden ist, hat in ProgDVB eine gute und kostenlose Alternative für Windows-PCs. Mit ProgDVB inklusive seiner diversen Plugin kann man
 - DVB Programme im Fenster oder Vollbild sehen.
 - Sendungen aufzeichnen oder verzögert anschauen (Timeshift).
 - Videotext betrachten (auch als OSD, d.h. Texte werden über dem Fernseh(voll)bild eingeblendet).
 - das aktuelle Fernsehprogramm via EPG betrachten und Aufzeichnungen programmieren]]></description>
    <link>http://tips.seifenrest.de/software/empfehlungen/4/progdvb.html</link>
    <dc:date>2012-01-20T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html">
   <title>CSS Design Lab - klicken und lernen</title>
    <description><![CDATA[Mit <a href="http://www.guntherkrauss.de/computer/xml/daten/cssdesigner.html" rel="nofollow">CSS Design Lab</a> können Sie spielend einige CSS Grundlagen lernen. Mittels einer einfachen grafischen Benutzeroberfläche können Sie Farbe, Schriftart, Rahmen, Abstände und Hintergrundbilder von einigen HTML-Elementen gestalten und das Resultat als CSS-Anweisungen ausgeben lassen.

Diese kleine Webapplikation kann nicht nur zu didaktischen Zwecken benutzt werden. Sie können damit auch sehr einfach und schnell bestimmte Farb- und Schriftkombinationen ausprobieren, die Wirkung von Rahmen und Abständen anschauen, und wenn Ihnen das Aussehen der Elemente gefällt, können Sie gleich die entsprechenden CSS-Anweisungen kopieren und in Ihre CSS-Datei einfügen.]]></description>
    <link>http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html</link>
    <dc:date>2012-01-19T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/sonstiges/latex/9/kommutative-diagramme.html">
   <title>Kommutative Diagramme</title>
    <description><![CDATA[Es gibt verschiedene Pakete, um in TeX bzw. LaTex kommutative Diagramme zu erzeugen, unter anderem das Paket <em>CD</em> der AMS, <em>kuvio</em>, <em>borceux</em>. Außerdem besitzt das Paket für zweidimensionale Grafiken <em>XY-pic</em> einige Module, mit deren Hilfe relativ schnell auch kompliziertere kommutative Diagramme erzeugt werden können.

In LaTeX wird das Paket mittels <code>\usepackage</code> eingebunden. Als Optionen gibt man die benötigten Module an. Für kommutative Diagramme sind das <code>matrix</code> und <code>arrow</code>, sowie <code>curve</code> für gekrümmte Pfeile. Die Grafiken bzw. Diagramme stehen innerhalb einer Xy-Umgebung <code>\begin{xy} ...\end{xy}</code>, und diese muß innerhalb einer Math-Umgebung <code>$$ .. $$</code> bzw. <code>\[ .. \]</code> stehen.

<code>\documentclass{article}</code>
<code>\usepackage[arrow, matrix, curve]{xy}</code>
<code>...</code>
<code>\begin{document}</code>
<code>...</code>
<code>  \[</code>
<code>    \begin{xy}</code>
<code>...</code>
<code>    \end{xy}</code>
<code>  \]</code>
<code>...</code>
<code>\end{document</code>}

Die meisten Diagramme lassen sich mit Hilfe des matrix-Moduls erzeugen. Die Matrix- bzw. Tabellenstruktur wird dabei innerhalb von <code>\xymatrix{ ... }</code> definiert.
Objekte

Im Allgemeinen ordnet man nur die Objekte in einem Rechteckschema an, für die Pfeile werden keine eigenen Tabellenzellen reserviert. Tabellenzellen werden wie üblich mittels <code>&amp;</code> getrennt, die Tabellenzeilen werden durch <code>\\</code> getrennt. Innerhalb von <code>\xymatrix{...}</code> dürfen keine leere Zeilen stehen.

Die Pfeile des Diagramms werden mit Hilfe von <code>\ar</code> erzeugt. Pfeile schreibt man in die entsprechenden Zellen der Quellobjekte und notiert, zu welcher Zelle der Pfeil zeigen soll: <code>\ar[r]</code> zeichnet z.B. einen Pfeil zu dem Objekt in der benachbarten rechten Zelle, \ar[d] zu der benachbarten unteren Zelle, bei <code>\ar[ddl]</code> geht der Pfeil zwei Zellen nach unten und eine nach links, usw. Anstelle der relativen Position kann auch die absolute Position der Ziel-Zelle mittels <code>\ar(·,·)</code> notiert werden - <code>\ar(2,4)</code> läßt den Pfeil zu der Zelle in der zweiten Zeile und vierten Spalte zeigen.

Die Beschriftungen der Pfeile werden an <code>\ar[·]</code> mit folgenden Zeichen angehängt:
<code>^</code> - Beschriftung in Pfeilrichtung links vom Pfeil
<code>_</code> - Beschriftung in Pfeilrichtung auf der rechten Seite
<code>|</code> - Beschriftung auf dem Pfeil

So erzeugt <code>\ar[r]^i</code> einen nach rechts zeigenden Pfeil mit darüberstehendem <em>i</em>, während beim nach links weisenden Pfeil <code>\ar[l]^i</code> das <em>i</em> unterhalb des Pfeils steht. Zusammengesetzte Beschriftungen werden, wie in TeX üblich, mit <code>{...}</code> gruppiert, zudem kann ein Pfeil gleichzeitig mehrere Beschriftungen haben.

Mehr Beispiele und Tips (beispielsweise für gekrümmte Pfeile) gibt es in dem Artikel <a href="http://www.guntherkrauss.de/computer/tex/diagramme.html" rel="nofollow">Kommutative Diagramme mit XY-pic</a>,]]></description>
    <link>http://tips.seifenrest.de/sonstiges/latex/9/kommutative-diagramme.html</link>
    <dc:date>2012-01-18T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html">
   <title>CSS Design Lab - klicken und lernen</title>
    <description><![CDATA[Mit <a href="http://www.guntherkrauss.de/computer/xml/daten/cssdesigner.html" rel="nofollow">CSS Design Lab</a> können Sie spielend einige CSS Grundlagen lernen. Mittels einer einfachen grafischen Benutzeroberfläche können Sie Farbe, Schriftart, Rahmen, Abstände und Hintergrundbilder von einigen HTML-Elementen gestalten und das Resultat als CSS-Anweisungen ausgeben lassen.

Diese kleine Webapplikation kann nicht nur zu didaktischen Zwecken benutzt werden. Sie können damit auch sehr einfach und schnell bestimmte Farb- und Schriftkombinationen ausprobieren, die Wirkung von Rahmen und Abständen anschauen, und wenn Ihnen das Aussehen der Elemente gefällt, können Sie gleich die entsprechenden CSS-Anweisungen kopieren und in Ihre CSS-Datei einfügen.]]></description>
    <link>http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html</link>
    <dc:date>2012-01-17T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html">
   <title>Beschriftung von Passwortfeldern im Feldinhalt</title>
    <description><![CDATA[Es ist üblich die Beschriftung eines Eingabefeld in das Feld zu schreiben, wenn über oder neben dem Feld kein ausreichender Platz ist. Oft sind es Suchschlitze, Newsletter-Abofelder oder Loginbereiche, die auf einer Seite platzsparend angeboten werden. Klickt man nun in das Feld, so wird der Inhalt mittels JavaScript gelöscht, so daß der Benutzer direkt seinen Text eingeben kann.

Bei Passwortfeldern steht man allerdings vor einem Problem: wählt man wie üblich den Typ <code>password</code>, so werden statt Text nur Sternchen angezeigt, nimmt man ein normales Feld, so ist nicht nur die Beschriftung lesbar, sondern anschließend auch das eingegebene Kennwort. Eine erste Idee ist, beim Aktivieren des Feldes nicht nur den Inhalt zu löschen, sondern auch den Feldtyp zu ändern. Leider funktioniert dies nicht in allen Browsern zuverlässig.

Daher empfiehlt sich eine andere Methode, die in den gängigen Browsern (Opera, Firefox und sogar IE) funktioniert. Statt des Passwortfeldes wird ein normales Eingabefeld mit dem Inhalt &quot;Passwort&quot; o.ä. angezeigt. Aktiviert man nun das Passwortfeld, so wird dieses unsichtbar gemacht, ein echtes Passwortfeld an dieser Stelle angeboten und der Eingabefokus auf dieses neue Feld gesetzt. Die Eingabe des Benutzers erfolgt somit in einem echten Passwortfeld und das Kennwort ist nicht sichtbar.

Die meisten Benutzer aktivieren ein Feld durch Klicken, um Text einzugeben. Trotzdem sollte man nicht auf das Ereignis <code>onclick</code> reagieren, sondern auf <code>onfocus</code>. Dieses tritt nämlich nicht nur beim Klicken auf das Feld ein, sondern auch wenn mittels TAB-Taste darauf gesprungen wird.

Eine mögliche Realisierung in HTML und JavaScript:

<code>
...
&lt;input type=&quot;text&quot; name=&quot;falschesfeld&quot; id=&quot;falschesfeld&quot; value=&quot;Passwort&quot; onfocus=&quot;wechslePasswortfeld();&quot;&gt;
&lt;input type=&quot;password&quot; name=&quot;passwortfeld&quot; id=&quot;passwortfeld&quot;&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

document.getElementById('passwortfeld').style.display = 'none';

function wechslePasswortfeld() {
  document.getElementById('falschesfeld').style.display='none';
  document.getElementById('passwortfeld').style.display='inline';
  document.getElementById('passwortfeld').focus();
}

&lt;/script&gt;
...
</code>  ]]></description>
    <link>http://tips.seifenrest.de/webpublishing/javascript/17/beschriftung-von-passwortfeldern-im-feldinhalt.html</link>
    <dc:date>2012-01-16T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/usability-accessibility/16/frames-damit-sie-nicht-zum-gau-werden.html">
   <title>Frames - damit sie nicht zum GAU werden.</title>
    <description><![CDATA[Trotz der mannigfachen Nachteile werden Frames immer noch sehr häufig bei der Gestaltung von Webseiten genutzt. Es gibt natürlich auch Fälle, wo der Einsatz von Frames sinnvoll sein kann - beispielsweise wenn zwei Texte auf einer Seite dargestellt werden sollen, um miteinander verglichen zu werden. Für die meisten Webseiten jedoch sind Frames nur die zweitbeste Lösung.

Wer serverseitige Techniken wie PHP oder SSI zur Verfügung hat, für den gilt noch nichtmal das Argument, Frames seien so praktisch, weil man die Navigation nur einmal erstellen müßte. Er kann die Navigation ja automatisch in jede Seite einbinden lassen. Wer jedoch nur HTML zur Verfügung hat und den Arbeitsaufwand scheut, jede einzelne Seite mit der Navigation zu versehen, für den ist der Einsatz von Frames möglicherweise legitim. Allerdings sollte man sich folgende Nachteile nochmal in Erinnerung rufen:

 - Nicht alle Besucher können Frames anzeigen lassen. Es betrifft nicht nur diejenigen wenigen, die noch einen Uralt-Browser benutzen, sondern vielmehr Sehbehinderte, die Textbrowser oder Screenreader benutzen müssen.
 - Suchmaschinen haben auch Probleme mit Frames. Zwar werden mittlerweile auch Frame-Unterseiten von den Suchmaschinen durchsucht, aber die Suchmaschinen können in der Regel keine logische Beziehung zwischen den einzelnen Frames erkennen.
 - Obiges Problem wirkt sich auch für Besucher aus, die Ihre Seite mittels einer Suchmaschine gefunden haben. Sie werden nur auf die Unterseite geleitet und kriegen von dem ganzen Frameset nichts mit.
 - Seiten mit Frames können nicht vernünftig verlinkt werden - entweder man verlinkt die Unterseite, dann ist die Navigation flöten, oder man verlinkt das Framset, dann landet man immer auf der Startseite, und nicht auf der eigentlich gewünschten Unterseite.

Um obigen Frame-GAU zu vermeiden, sollte man folgende Ratschläge beherzigen:

 - Im Frameset sollte man einen <code>noframes</code> Bereich machen, in dem zumindest eine kurze Beschreibung der Seite stehen sollte und die wichtigsten Seiten verlinkt sein sollten. 
 - Auf jeder Frame-Unterseite sollte ein Link zur Startseite stehen. So landen Besucher, die via Suchmaschinen gekommen sind nicht in der Sackgasse.
 - Zusätzlich kann man in jede Unterseite eine kleine JavaScript-Funktion einbauen, die das komplette Frameset nachlädt. Dies funktioniert natürlich nur, wenn der Benutzer JavaScript nicht ausgeschaltet hat. Das Nachladen des Framesets sollte nicht automatisch erfolgen (vielleicht will der Besucher ja tatsächlich nur die Unterseite ohne Navigation sehen, um sie auszudrucken). Vielmehr empfiehlt sich entweder ein Link oder eine Schaltfläche &quot;Navigation laden&quot;, die die Aktion auslösen, oder, wenn die Aktion doch automatisch erfolgen soll, sollte zumindest eine Dialogbox kommen, wo der Benutzer das Nachladen abbrechen kann.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/usability-accessibility/16/frames-damit-sie-nicht-zum-gau-werden.html</link>
    <dc:date>2012-01-15T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/html/13/vorschlaege-bei-eingabefeldern-verhindern.html">
   <title>Vorschläge bei Eingabefeldern verhindern</title>
    <description><![CDATA[Manche Browser haben die häufig nützliche Funktion, einen beim Ausfüllen eines Formulars zu unterstützen, indem sie automatisch eine Liste bereits eingegebener Begriffe anzeigen. Der Benutzer kann dieses Verhalten bei den meisten Browsern ein oder ausschalten. In gewissen Fällen ist diese Funktion jedoch kontraproduktiv - beispielsweise wenn der Seitenbetreiber dem Benutzer beim Ausfüllen eigene Vorschläge machen will. So zeigt beispielsweise Google Suggest beim Eintippen eines Suchwortes automatisch passende Suchbegriffe unterhalb des Eingabefeldes an. Damit diese Anzeige nicht mit der Anzeige der Browservorschläge kollidiert, müssen die Browservorschläge für das Feld ausgeschaltet werden. Dafür haben die meisten Browser das Attribut <code>autocomplete</code> vorgesehen. Mit <code>autocomplete=&quot;off&quot;</code> schaltet man das Aufklappen der Liste bereits eingegebener Begriffe aus.

Diese Methode hat jedoch einen gravierenden Nachteil: das Attribut <code>autocomplete</code> ist kein gültiges HTML-Attribut und Seiten, die dieses benutzen sind somit nicht valide. Wer seine Seiten also valide halten will, muß auf JavaScript ausweichen. Zwar haben manche Benutzer JavaScript deaktiviert, aber da man das automatische Ausfüllen ja meistens deshalb ausschalten will, weil man eigene Vorschläge mit JavaScript (z.B. AJAX) anzeigen will, ist dies keine wesentliche Einschränkung.

Statt den Quelltext durch Angabe von <code>autocomplete=&quot;off&quot;</code> zu verhunzen, kann man dies nach JavaScript auslagern. Dafür muß man an geeigneter Stelle (z.B. nach <code>onload</code>) folgende Anweisung ausführen:
<code>document.getElementById('id_des_eingabefeldes').setAttribute('autocomplete','off');</code>]]></description>
    <link>http://tips.seifenrest.de/webpublishing/html/13/vorschlaege-bei-eingabefeldern-verhindern.html</link>
    <dc:date>2012-01-14T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html">
   <title>CSS Design Lab - klicken und lernen</title>
    <description><![CDATA[Mit <a href="http://www.guntherkrauss.de/computer/xml/daten/cssdesigner.html" rel="nofollow">CSS Design Lab</a> können Sie spielend einige CSS Grundlagen lernen. Mittels einer einfachen grafischen Benutzeroberfläche können Sie Farbe, Schriftart, Rahmen, Abstände und Hintergrundbilder von einigen HTML-Elementen gestalten und das Resultat als CSS-Anweisungen ausgeben lassen.

Diese kleine Webapplikation kann nicht nur zu didaktischen Zwecken benutzt werden. Sie können damit auch sehr einfach und schnell bestimmte Farb- und Schriftkombinationen ausprobieren, die Wirkung von Rahmen und Abständen anschauen, und wenn Ihnen das Aussehen der Elemente gefällt, können Sie gleich die entsprechenden CSS-Anweisungen kopieren und in Ihre CSS-Datei einfügen.]]></description>
    <link>http://tips.seifenrest.de/software/helferlein/14/css-design-lab-klicken-und-lernen.html</link>
    <dc:date>2012-01-13T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html">
   <title>Richtigen Dateityp mit PHP ausgeben</title>
    <description><![CDATA[PHP sendet im Normalfall die Ausgabedaten immer mit dem MIME-Typ <code>text/html</code>. Wenn Sie mit PHP jedoch ein Bild erzeugen und direkt ausgeben oder XML-Daten ausgeben, dann sollten die Daten auch mit dem richtigen Dateityp gekennzeichnet werden.

In PHP benutzt man dafür den <em>header()</em>-Befehl

<code>header('Content-Type: image/png')</code>

um im <em>HTTP</em>-Header den jeweiligen MIME-Typ der Ausgabedaten zu setzen. 

Der <em>header()</em>-Befehl muß <strong>vor</strong> jeglicher PHP-Ausgabe aufgerufen werden. Wenn vorher schon Daten ausgegeben wurden - z.B. mit dem <em>echo</em>-Befehl, dann wurden die Header-Daten schon versendet und die Daten schon als <em>text/html</em> gekennzeichnet. Beachten Sie auch, daß eine vorherige Ausgabe von Daten auch implizit passieren kann - z.B. durch Leerzeichen, Zeilenumbrüche u. ä. außerhalb von <code>&lt;?php ... ?&gt;</code> oder durch eventuelle Fehler- oder Warnmeldungen des Skriptes.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/php/12/richtigen-dateityp-mit-php-ausgeben.html</link>
    <dc:date>2012-01-12T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/server/7/www-mit-oder-ohne.html">
   <title>www - mit oder ohne?</title>
    <description><![CDATA[Manche Benutzer bevorzugen die kurze Version <em>domain.tld</em>, andere schreiben gewohnheitsmäßig <em>www.domain.tld</em>. Deshalb ist es sinnvoll, soweit möglich, die Seiten unter beiden Adressvarianten vorrätig zu halten. Bei Suchmaschinen kann dies jedoch zu Problemen führen, da beide Varianten erstmal verschiedene Domains sind. So werden Seiten teilweise doppelt in den Index aufgenommen, oder noch schlimmer, die Relevanz der Seiten sinkt, die Seiten werden wegen vermeintlichem &quot;double content&quot; abgestraft. Um dies zu vermeiden und die Seiten unter einem einheitlichen Namen zu listen, kann man beispielsweise mittels <em>mod rewrite</em> generell von der einen Domain auf die andere weiterleiten.

Fügt man folgendes in die <em>.htaccess</em>-Datei ein

<code>RewriteEngine On</code>
<code>RewriteCond %{HTTP_HOST} ^domain\.tld [NC]</code>
<code>RewriteRule ^(.*) http://www.domain.tld/$1 [R=301,L]</code>

so wird jede Anfrage ohne <em>www</em> direkt zur Domain mit <em>www</em> umgeleitet. Ob man nun die Domain mit oder ohne <em>www</em> zur Standarddomain macht, ist Geschmacksache. Der Besucher kann beide Varianten eintippen, die Suchmaschinen nehmen sie jedoch nur unter der Standarddomain in den Index auf.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/server/7/www-mit-oder-ohne.html</link>
    <dc:date>2012-01-11T00:00:00+00:00</dc:date>
   </item>  
   <item rdf:about="http://tips.seifenrest.de/webpublishing/css/5/dynamische-css-dateien-mit-php.html">
   <title>Dynamische CSS-Dateien mit PHP</title>
    <description><![CDATA[Gelegentlich ist es erforderlich, in einer HTML-Datei je nach Anforderungen unterschiedliche Stylesheets einzubinden. Beispielsweise wählt ein registrierter Benutzer eine eigene, frei definierbare Farbkombination, die gespeichert und für das Anzeigen der Seite verwendet werden soll. Oder man möchte abends ein anderes Design als tagsüber haben. Dann ist es sinnvoll, die entsprechende CSS Datei dynamisch zu erzeugen. Mit PHP geht das folgendermaßen.

Man erzeugt eine PHP-Datei stil.php, die folgende Struktur hat:

<code>&lt;?php</code>
<code>header(&quot;Content-type: text/css&quot;);</code>
<code>...</code>
<code>if ($nacht) {</code>
<code> echo 'body {background-color:black; color:white;}';</code>
<code>}</code>
<code>else {</code>
<code> echo 'body {background-color:white; color:black;}';</code>
<code>};</code>
<code>?&gt;</code>

Das PHP-Skript liefert also CSS-Anweisungen zurück, die je nach Tageszeit unterschiedlich sind. Das Skript wird nun in den HTML-Dateien mit <code>&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;stil.php&quot;&gt;</code> eingebunden. Der <code>header()</code>-Befehl sorgt im Skript dafür, daß die Datei als CSS-Datei erkannt wird.

Man kann den Webserver natürlich auch so einstellen, daß Dateien mit der Endung .css von PHP geparst werden. In diesem Fall kann man dem Stylesheet die gewohnte Endung .css geben.]]></description>
    <link>http://tips.seifenrest.de/webpublishing/css/5/dynamische-css-dateien-mit-php.html</link>
    <dc:date>2012-01-10T00:00:00+00:00</dc:date>
   </item>  
</rdf:RDF>
