XML generieren, nach ausfüllen eines Formulars
elkloso
- xml
Hey, ich habe ein kleines Problem.
Ich wurde gefragt, ob ich für meinen Geschichtskurs in der Schule ein kleines HTML Dokument schreibe in das ein javascript eingebunden ist. (Das ist so ein Interaktiver Zeitstrahl).
Auf jeden Fall, das geht alles, nur der Zeitstrahl nimmt seine Daten die er anzeigt aus einer XML-Datei.
Das Format ist
[Code}
<event start="Hier muss ein Datum eingegeben werden"
title="Hier steht was passiert ist "
>
Hier steht eine kurze Beschreibung
</event>
[/code]
So, nun soll immer eine Kleingruppe aus der Klasse, zu jedem Thema eine XML-Erstellen bzw der Lehrer möchte dass die dann die Daten eintragen. Da ich das aber großteil meines Kurses nicht zu traue, eine XML richtig zu schreiben bzw es einfacher wäre, möchte ich ein Script, dass die Daten automatisch einträgt.
Also sowas mit 3 Feldern sag ich mal.
Datum
Titel
Beschreibung
Da tragen die das dann ein. Und das Script setzt dies dann im richtigen Format in die XML-Datei. Müsste doch machbar sein oder?
Der Zeitstrahl ist so gemacht, dass er auch offline läuft. Allerdings könnte dass Script auch ruhig über einen PHP Server laufen, wenns nicht anders möglich ist.
Mit anderen Worten: du willst ein Formular, welches Daten erfasst und in eine XML-Datei klopft?
Im Prinzip also wie dieser Formmailer - nur anstatt dem Mailversand baust erweiterest du dein XML-File:
http://aktuell.de.selfhtml.org/artikel/php/form-mail/
XML kannst du unter PHP z.B. mittels SimpleXML bearbeiten.
XML öffnen, Knoten einfügen, drei Kinder an diesen Knoten anhängen und wieder speichern - ist mit ein paar Zeilen erledigt.
Ja genau es soll in die XML-Datei einfach das hier, immer wieder (verändert) eingefügt werden:
<event
start="Hier muss ein Datum eingegeben werden"
title="Hier steht was passiert ist "
Hier steht eine kurze Beschreibung
</event>
Also dann ein Formularfeld mit Datum, das soll dann unter "start" eingetragen werden.
Ein Feld mit Titel, dass soll bei "title" eingetragen werden.
Ein Feld mit der Beschreibung, das soll hinter ">" eingetragen werden.
OK - dann danke für die Info :)
Wenn du hilfe brauchst, melde dich wieder.
Hey, ja brauche Hilfe :D
Also ich bin nicht so PHP Bewandert und habe mich deshalb durchs Netz gesucht.
Nun bin ich auf diesesn Code gestoßen, um damit News in eine XML einzutragen und dachte mir, die kann ich umschreiben.
<?php
if(isset($_POST["send"]) && trim($_POST["news"]) != "") {
// print_r($_POST);
$myFile = "text.xml"; // der Pfad zur XML-Datei
$xmlRoot = "meldungen"; // dein Wurzelknoten
$xmlNode = "meldung"; // dein Knoten
$xmlSubNodes = array("datum","news"); // die Kindknoten
// dann überprüfen wir erst mal, ob es die Datei schon gibt und erstellen dabei auch gleich die Wurzel
if(!file_exists($myFile)) {
$dom = new DOMDocument("1.0","iso-8859-1");
// $dom->formatOutput = true;
$root = $dom->createElement($xmlRoot);
$root = $dom->appendChild($root);
}
// nun machen wir uns daran, neue Newseinträge in die XML zu schreiben
if(!isset($dom)) {
$dom = new DOMDocument();
$dom->load($myFile);
$root = $dom->documentElement; // bestimmen der Wurzel
}
// wir hängen eine neue Meldung an
$node = $dom->createElement($xmlNode); // erzeugen ein Element
$node = $root->appendChild($node); // hängen dieses an den Baum an
// und kreieren einen neuen subnode
$subNode = $dom->createElement($xmlSubNodes[0]); // erzeugen
$subNode = $node->appendChild($subNode); // und anhängen
// und packen schon mal unser Datum rein
$date = $dom->createTextNode($_POST[">"]); // erzeugen einen Textknoten
$date = $subNode->appendChild($date); // und hängen ihn an
// wir brauchen noch die News
$subNode = $dom->createElement($xmlSubNodes[1]); // erzeugen
$node->appendChild($subNode); // und anhängen
// und erstellen eine CDATA-Sektion
$newNews = $dom->createCDATASection($_POST["news"]); // erstellen die Sektion
$subNode->appendChild($newNews); // und hängen sie an
echo 'Geschrieben: ' . $dom->save($myFile) . ' Bytes';
// $dom->save($myFile);
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
<textarea name="news" rows="5"></textarea>
<input name="send" type="submit" value="eintragen" />
</form>
Das Problem ist nun, dass er es in [Meldungen][Meldung][Datum][/Datum][News][/News][/Meldung][/Meldungen] setzt.Die Namen sind erstmal egal, aber ich bräuchte halt.
<Meldung
start="hier ein Datum"
title="hier ein Text">
"Hier ein text"
</Meldung>
Wie kann ich das ändern?
Bzw statt einer XML, hätte ich auch eine JS zur Auswahl, die ich bearbeiten könnte, ginge das einfacher?
Nun bin ich auf diesesn Code gestoßen, um damit News in eine XML einzutragen und dachte mir, die kann ich umschreiben.
TL:DR - warum wirfst du nicht einfach einen Blick in die Simple-XML-Dokumentation?
XML lesen
Element einhängen
Attribut einhängen
Attribut einhängen
Attribut einhängen
XML schreiben
Das sind, wenn ich jetzt nix vergessen habe, 6 Zeilen Code.
Bzw statt einer XML, hätte ich auch eine JS zur Auswahl, die ich bearbeiten könnte, ginge das einfacher?
SimpleXML ist extrem einfach.
Das müsste doch dann so aussehen oder?
<?php
$xml = simplexml_load_file("test.xml");
$event = $xml->addChild("event");
$event->addChild("start", "$_POST[start]");
$event->addChild("title", "$_POST[title]");
$handle = fopen("test.xml", "wb");
fwrite($handle, $xml->asXML());
fclose($handle);
?>
Hallo,
<?php
$xml = simplexml_load_file("test.xml");
$event = $xml->addChild("event");
$event->addChild("start", "$_POST[start]");
$event->addChild("title", "$_POST[title]");
$handle = fopen("test.xml", "wb");
fwrite($handle, $xml->asXML());
fclose($handle);
?>
damit erzeugst du start und title als Kindelemente von event - du willst aber keine Kindelemente, sondern Attribute, wie dein Beispiel zeigt.
Außerdem ist es Schwachsinn, einzelne Stringausdrücke wie z.B. $\_POST['start'] nochmal in einen String einzubetten. Das wird auch nicht besser, wenn es tausendfach praktiziert wird.
Ciao,
Martin
--
Die letzten Worte des Polizisten:
Ich hab mitgezählt, Leute: Sechs Schuss, jetzt hat er keine Munition mehr!
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
Hey, momentan stell ich mich echt dumm dran, ich finde auch iwie nicht die passenden Befehle über Google. Ich habs mir so gedacht:
1 Lade XML
2 Füge <event hinzu
3 Füge start="$_POST" hinzu
4 Füge title="$_POST" hinzu
5 Füge ein >
6 Füge "$_POST" hinzu
7 Schließe event (</event)
1. Hab ich so gelöst
$xml = simplexml_load_file("test.xml");
2. Hapert es schon, das müsste doch das sein?
$xml = new SimpleXMLElement("event");
3 und 4. Wäre dann doch:
$start = $xml->addAttribute("start","$_POST[start]");
$title = $xml->addAttribute("title","$_POST[title]");
Und dann muss die Datei geschrieben werden:
$handle = fopen("test.xml", "wb");
fwrite($handle, $xml->asXML());
fclose($handle);
Das habe ich mir so zusammengesucht. Klappt natürlich nicht :( Wo liegen da meine Fehler? Das mit dem "$_POST" benutze ich immer, weil ja später noch ein Formular dazukommt und ich ja definieren muss, von wo er die Eingabe nimmt oder?
Hi!
- Hab ich so gelöst
$xml = simplexml_load_file("test.xml");
- Hapert es schon, das müsste doch das sein?
$xml = new SimpleXMLElement("event");
Mit 2. erstellst du ein Element. Aber das soll ja nicht irgendwie in der Luft hängen. Du willst doch ein Kind unterhalb des Wurzelelements hinzufügen. Nummer 1 ist schon richtig. Aber nun verweist $xml auf das Wurzelelement und da muss jetzt ein Kind rein.
3 und 4. Wäre dann doch:
$start = $xml->addAttribute("start","$_POST[start]");
$title = $xml->addAttribute("title","$_POST[title]");
Variablen müssen nicht in Anführungszeichen eingerahmt werden. Das ist völlig überflüssig. Allerdings sollte der Key-Name in Anführungszeichen eingefasst werden, sonst ist sich PHP nicht sicher, ob du eine Konstanten mit dem Namen meinst oder den Keys als Stringliteral. Und um dich jetzt noch etwas zu verwirren: bei innerhalb von ""-Strings notierten Array-Zugriffen kommen keine Anführungszeichen um den Key oder es wird so notiert: ${var['key']}. Aber Variablenersetzung in Strings brauchst du hier ja nicht.
> Und dann muss die Datei geschrieben werden:
> ~~~php
$handle = fopen("test.xml", "wb");
> fwrite($handle, $xml->asXML());
> fclose($handle);
file_put_contents() macht die Sache einfacher. Und noch einfacher wird es, wenn du dir im Handbuch die Beschriebung der Methode asXML() anschaust.
Klappt natürlich nicht :(
"Klappt nicht" klappt nie. Meine Vorstellungen von "klappt nicht" müssen nicht zwangsläufig mit deinen übereinstimmen. Und wenn du schon festgestellt hast, dass irgendwas nicht so läuft, wie du dir das vorstellst, dann beschreib das bitte, und zwar möglichst genau. Dazu ist auch der Inhalt von Variablen und die Funktionsergebnisse interessant, die von deinen Vorstellungen abweichen. Natürlich muss man sich diese Werte anzeigen lassen, aber das gehört zu den grundlegensten Debugging-Methoden.
Das mit dem "$_POST" benutze ich immer, weil ja später noch ein Formular dazukommt und ich ja definieren muss, von wo er die Eingabe nimmt oder?
Du musst "ihm" (wer auch immer das konkret ist) das geben, was "er" braucht. Und wenn Daten über $_POST ins Script kommen, musst du auch $_POST nehmen - logisch.
Lo!
hey danke.
Also muss ich statt addAtributes , addchild schreiben?
Mein code ist im moment dann
<?php
$xml = simplexml_load_file("test.xml");
$xml = new SimpleXMLElement("event");
$start = $xml->addchild("start","$_POST[start]");
$title = $xml->addchild("title","$_POST[title]");
$handle = fopen("test.xml", "wb");
fwrite($handle, $xml->asXML());
fclose($handle);
?>
Wenn ich nun die PHP aufrufe, kommt
[quote]
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 1: parser error : Start tag expected, '<' not found in /homepages/26/d284984573/htdocs/Geschichte/formular.php5 on line 3
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: event in /homepages/26/d284984573/htdocs/Geschichte/formular.php5 on line 3
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /homepages/26/d284984573/htdocs/Geschichte/formular.php5 on line 3
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /homepages/26/d284984573/htdocs/Geschichte/formular.php5:3 Stack trace: #0 /homepages/26/d284984573/htdocs/Geschichte/formular.php5(3): SimpleXMLElement->__construct('event') #1 {main} thrown in /homepages/26/d284984573/htdocs/Geschichte/formular.php5 on line 3
[/quote]
Hi!
Also muss ich statt addAtributes , addchild schreiben?
Nein. Du solltest als erstes nicht das bereits in $xml enthaltene Dokument mit einem neu erstellten Element überschreiben sondern diesem $xml ein Child hinzufügen. $xml->addChild() gibt als Ergebnis dieses Child zurück. Dem kannst du dann Attribute hinzufügen. Ich hab nicht gefunden, wie dem Child der Inhalt zugewiesen werden kann, außer man übergibt ihn gleich beim Hinzufügen.
Lo!
Bin ich echt so dumm? :(
Das <event muss doch als child eingefügt werden.
Dann das title als Attribute davon oder?
wenn ich das aber so mache, macht er mir aus der ursprünglichen XML, die so lautet
<?xml version="1.0"?>
<data></data>
Daraus macht er mir:
<?xml version="1.0"?>
<data title=
Ich will doch nur das Element "event" mit den Attributen "title=" und "start=" hinter die dann was eingetragen werden kann.
Hi!
Das <event muss doch als child eingefügt werden.
Ja.
Dann das title als Attribute davon oder?
Ja.
wenn ich das aber so mache, macht er mir aus der ursprünglichen XML, die so lautet
<?xml version="1.0"?>
<data></data>
>
> Daraus macht er mir:
> ~~~xml
<?xml version="1.0"?>
> <data title=
Dann rufst du addAttributes() vom Root-Element (data) auf und nicht vom Child, welches du dem data hättest hinzufügen wollen.
Ich will doch nur das Element "event" mit den Attributen "title=" und "start=" hinter die dann was eingetragen werden kann.
Ja, aber deine Reihenfolge ist falsch. Lies bitte genau, was ich schrieb: Nicht ein neues Element erzeugen und das als Child einfügen, sondern dem bestehenden $xml mit addChild() ein neues Child namens "event" mit dem Inhalt "sowieso" hinzufügen. Diesem Child, das als Funktionsergebnis von addChild() zurückgegeben wird, kannst du dann die Attribute hinzufügen.
Lo!
Hi!
(Hmpf, wegen dem nicht geschlossenen data-Element ist das Forum kaputtgegangen und hat die Hälfte meines Beitrags verschluckt. Also nochmal.)
Das <event muss doch als child eingefügt werden.
Ja.
Dann das title als Attribute davon oder?
Ja.
wenn ich das aber so mache, macht er mir aus der ursprünglichen XML, die so lautet
<?xml version="1.0"?>
<data></data>Daraus macht er mir:
<?xml version="1.0"?>
<data title=
Dann rufst du addAttributes() vom Root-Element (data) auf und nicht vom Child, welches du dem data hättest hinzufügen wollen.
Ich will doch nur das Element "event" mit den Attributen "title=" und "start=" hinter die dann was eingetragen werden kann.
Ja, aber deine Reihenfolge ist falsch. Lies bitte genau, was ich schrieb: Nicht ein neues Element erzeugen und das als Child einfügen, sondern dem bestehenden $xml mit addChild() ein neues Child namens "event" mit dem Inhalt "sowieso" hinzufügen. Diesem Child, das als Funktionsergebnis von addChild() zurückgegeben wird, kannst du dann die Attribute hinzufügen.
Lo!
Danke solangsam komme ich dahinter :)
Allerdings stellt sich das nächste Problem
Also mit dem hier:
$xml->addChild("event");
erzeugt er schonmal <event>, das ist schonmal gut.
Dann wollte ich das Attribut so setzten, wie es auch in der Dokumentation ist:
$title = $event->addAttribute('title', '5');
Dann allerdings bekomm ich angezeigt:
"Fatal error: Call to a member function addChild() on a non-object in /homepages/26/d284984573/htdocs/Geschichte/formular.php5 on line 4"
Wie weiße ich ihm nun richtig zu, dass er das Attribut bei $event setzen sollte?
Hi!
Also mit dem hier:
$xml->addChild("event");
erzeugt er schonmal <event>, das ist schonmal gut.Dann wollte ich das Attribut so setzten, wie es auch in der Dokumentation ist:
$title = $event->addAttribute('title', '5');
Hast du die in der oberen Zeile auch eine Zuweisung an $event gemacht oder steht sie so in deinem Script wie sie hier zu sehen ist? Von allein legt sich eine Variable nicht an und es gibt üblicherweise auch keine Funktion, die eine als Nebenwirkung anlegt - zumindest nicht im Lieferumfang von PHP, denn sowas ist schlechter Stil und mit mehr Problemen verbunden als es nützlich ist.
Dann allerdings bekomm ich angezeigt:
"Fatal error: Call to a member function addChild() on a non-object in /homepages/26/d284984573/htdocs/Geschichte/formular.php5 on line 4"
Stell mal (beziehungsweise immer beim Entwickeln) das error_reporting auf E_ALL. Dann solltest du bei zutreffender Vermutung meinerseits noch eine Meldung zum Zugriff auf eine nicht vorhandene Variable namens $event sehen. Der fatale Error dürfte dann erklärlicher sein.
Wie weiße ich ihm nun richtig zu, dass er das Attribut bei $event setzen sollte?
Genau so, vorausgesetzt, $event existiert und ist das hinzugefügte Child.
Lo!
Nein eine Zuweisung an event habe ich ihm nicht gegeben. Dachte es würde reichen mit dem addchild, weil er da ja "event" erstellt.
Wie gebe ich die denn?
Ich richte mich immer hier nach dem Bsp und da ist doch auch keine oder habe ich etwas übersehen? http://www.php.net/manual/en/simplexmlelement.addchild.php
Hi!
Nein eine Zuweisung an event habe ich ihm nicht gegeben. Dachte es würde reichen mit dem addchild, weil er da ja "event" erstellt.
Wie gesagt, Variablen werden nicht einfach so angelegt.
Wie gebe ich die denn?
Wie bei jedem anderen Funktionsaufruf auch.
Ich richte mich immer hier nach dem Bsp und da ist doch auch keine oder habe ich etwas übersehen? http://www.php.net/manual/en/simplexmlelement.addchild.php
Es geht doch schon mit dem Element movie los, das der Wurzel hinzugefügt werden soll. Es soll weitere Kinder bekommen, also wird die Referenz darauf, die die Methode addChild() zurückgibt, in der Variable $movie abgelegt. title und plot haben nur Inhalt, also braucht man keine Referenzen auf sie, weil mit dem Aufruf von addChild() bereits alles erledigt ist. Dann bekommt movies ein Child namens characters und das wiederum einen character mit weiteren Child-Elementen. name und actor haben wieder nur Inhalt, also keine Referenz nötig. Aber das Element rating soll ein Attribut bekommen und deshalb wird wieder eine Referenz darauf benötigt und in der Variable $rating abgelegt.
Lo!
Okay wenn ich das genauso mache wie in dem Beispiel bei Rating, heißt es doch
$event = $xml->addChild("event");
$event->addattribute("title", "$_POST[title]");
Weil im Beispiel heißts ja:
$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');
Das wäre ja somit das gleiche, als Ausgabe habe ich aber nur:
<?xml version="1.0"?>
<data><event t
Das ist mein Problem, sonst würde es ja funktionieren. Es hapert ja nur noch an dem, dann hätte ich es ja soweit.
Hi!
Okay wenn ich das genauso mache wie in dem Beispiel bei Rating, heißt es doch
$event = $xml->addChild("event");
$event->addattribute("title", "$_POST[title]");
Es wurde schon mehrfach erwähnt, dass das Einrahmen von Variablen nicht sinnvoll ist, also bitte nicht "$\_POST[title]" sondern $\_POST['title'] verwenden. Ansonsten ist das richtig.
> Das wäre ja somit das gleiche, als Ausgabe habe ich aber nur:
> ~~~xml
<?xml version="1.0"?>
> <data><event t
Das hört wirklich nach dem t auf? Was hättest du denn gern als Ausgabe?
Lo!
Hallo,
Das wäre ja somit das gleiche, als Ausgabe habe ich aber nur:
<?xml version="1.0"?>
<data><event t
> Das hört wirklich nach dem t auf?
das hat mich auch schon irritiert. Das sieht nämlich sehr danach aus, als würde der serialisierte XML-String bei der Ausgabe abgeschnitten (das 't' sieht aus, als wäre es mal ein title-Attribut gewesen), oder die Datei nach der Bearbeitung gekürzt.
Da wäre jetzt interessant, wie die Ausgabe zustande kommt.
Ciao,
Martin
--
Time's an illusion. Lunchtime doubly so.
(Douglas Adams, "The Hitchhiker's Guide To The Galaxy")
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
[latex]Mae govannen![/latex]
Das wäre ja somit das gleiche, als Ausgabe habe ich aber nur:
<?xml version="1.0"?>
<data><event t
> > Das hört wirklich nach dem t auf?
>
> das hat mich auch schon irritiert. Das sieht nämlich sehr danach aus, als würde der serialisierte XML-String bei der Ausgabe abgeschnitten (das 't' sieht aus, als wäre es mal ein title-Attribut gewesen), oder die Datei nach der Bearbeitung gekürzt.
Wahrscheinlich ein Bug im Forum.
Bereits [eines seiner früheren Postings](https://forum.selfhtml.org/?t=206531&m=1402948) war kaputt:

Man beachte, daß die Schriftfarbe für die Foren-eigenen Ausgaben violett bleibt.
Stur lächeln und winken, Männer!
Kai
--
Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
in Richtung "Mess up the Web".([suit](https://forum.selfhtml.org/?t=197497&m=1324775))
[SelfHTML-Forum-Stylesheet](http://selfhtml.knrs.de/#h_stylesheet)
Ja das wird echt nach dem t abgeschnitten, bis jetzt waren alle meine Posts korrekt angezeigt worden bei mir ;)
Das irritiert mich ja, dass er nach dem t abschneidet.
Hi!
Ja das wird echt nach dem t abgeschnitten, bis jetzt waren alle meine Posts korrekt angezeigt worden bei mir ;)
Das irritiert mich ja, dass er nach dem t abschneidet.
Dann schreib nochmal, was ist und was sein soll und lass diesmal das Auszeichnen mit [code ...] weg.
Lo!
Eija im Forum ists richtig, bis jetzt ist alles richtig angezeigt.
Habe das Problem iwie eingegrenzt. Wenn ich die xml im Browser aufm Server aufrufe, wirds richtig angezeigt. Lade ich sie auf den PC und öffne sie in Dreamwaver oder Editor oder dann im Browser, wirds falsch angezeigt, bzw im broser kommt ein error.
Also ich führe die PHP aus und öffne dann per Link die XML, dann gehts. Sobald ich sie auf den PC lade geht´s nicht mehr.
Sorry für den Doppelpost, allerdings schließt er das event jetzt nicht.
Also das gibt er aus:
<data>
<event title="test" start="test"/>
</data>
Die PHP lautet:
<?php
$xml = simplexml_load_file("test.xml");
$event = $xml->addChild("event");
$event->addattribute("title", "test");
$event->addattribute("start", "test");
$handle = fopen("test.xml", "wb");
fwrite($handle, $xml->asXML());
fclose($handle);
?>
[latex]Mae govannen![/latex]
Sorry für den Doppelpost, allerdings schließt er das event jetzt nicht.
Also das gibt er aus:
<data>
<event title="test" start="test"/>
^^^^
Ist doch geschlossen. http://de.selfhtml.org/xml/regeln/tagsattrwerte.htm#leere_elemente
Stur lächeln und winken, Männer!
Kai
Achso okay, ich dachte man müsste immer mit </event> schließen ;)
Jetzt ein letztes Problem, wie kann ich einen Text hinter das <event> aber vor </event> schreiben? Einfach hinter bei dem child einfügen? also dann Addchild("event", "hier der text?")
Hi!
Jetzt ein letztes Problem, wie kann ich einen Text hinter das <event> aber vor </event> schreiben? Einfach hinter bei dem child einfügen? also dann Addchild("event", "hier der text?")
Was ergab dein Versuch und dein Vergleich mit dem Beispiel und dessen Ergebnis auf der PHP-Handbuchseite zu SimpleXMLElement::addChild()?
Lo!
Es funktioniert alles :)
Vielen vielen Dank an euch :)
Hey habe doch ncoh ein problem.
Wenn ich etwas in die XML eintrage, wird es erst vom JS geladen, nachdem die XML einmal geöffnet wurde im Browser. (auch bei kompelttem neuaufruf der Seite mit dem JS)
d.h. eintrag - JS laden -> ncihts
eintrag - XML laden - JS laden -> angezeigt
mehrere einträge - XML laden - JS laden -> angezeigt.
Hallo,
Wahrscheinlich ein Bug im Forum.
wahrscheinlich ein Bug in deinem Foren-CSS oder Foren-Javascript.
Bereits eines seiner früheren Postings war kaputt:
Dasselbe Posting sieht bei mir lammfromm aus - außerhalb des Posting-Textbereichs sind alle Farben und sonstigen Formatierungen so, wie sie sein sollen:
Man beachte, daß die Schriftfarbe für die Foren-eigenen Ausgaben violett bleibt.
In *deinem* Browser ...
Ciao,
Martin
[latex]Mae govannen![/latex]
Man beachte, daß die Schriftfarbe für die Foren-eigenen Ausgaben violett bleibt.
In *deinem* Browser ...
Ich habe für den Screenshot absichtlich die Anzeige ohne /my/ gewählt. Zumindest Opera 11.5, 9.5 und 9.27 sowie IE8 zeigen es so falsch an, Chrome allerdinxx[1] nicht. Andere Browser habe ich nach meiner Eselei noch nicht wieder installiert.
Stur lächeln und winken, Männer!
Kai
[1] *g*
Hallo,
Man beachte, daß die Schriftfarbe für die Foren-eigenen Ausgaben violett bleibt.
In *deinem* Browser ...
Ich habe für den Screenshot absichtlich die Anzeige ohne /my/ gewählt.
ah, da liegt der Hase im Pfeffer. Ohne /my/ zeigen meine Operas (der neue und der ganz alte) den gleichen Bug an wie in deinem Screenshot.
Tatsächlich ein Forums-Bug. Das span-Element fürs Syntax-Hilighting wird nicht geschlossen. Da entsteht vereinfacht sowas:
<p>
...
<span></span> <span></span> <span></p>
Eigentlich sollte mit dem </p> auch das Inline-Element span implizit mit geschlossen werden - wird es aber aus der Sicht des Browsers offensichtlich nicht. Warum das in der benutzerspezifischen Ansicht nicht auftritt, ist mir allerdings schleierhaft. Denn das Markup an der Stelle ist dasselbe.
Zumindest Opera 11.5, 9.5 und 9.27 sowie IE8 zeigen es so falsch an, Chrome allerdinxx[1] nicht.
Der scheint zu wissen, wann inline-Elemente implizit geschlossen werden. Firefox 3.0 und 3.6 übrigens auch.
So long,
Martin