Seite 1 von 1

ERLEDIGT: HTML nur in der Vorschau korrekt angezeigt?

Verfasst: 14.03.2007 17:48
von K1ckEM
Hi!

Ich habe versucht, in meinem Forum (neueste Version) Eine Tabelle in HTML zu erstellen. Nachdem ich das bekannte Problem mit den leerzeilen über der Tabelle hatte habe ich den Table-Fix von Acid installiert.

Der funzt auch wunderbar, nur wird mir die Tabelle nur in der VORSCHAU korrekt angezeigt. Wenn ich den Thread dann poste (ja, HTML ist weiterhin AN) und ihn dann erneut aufrufe, werden alle HTML Tags als Text dargestellt.

Habs auch mit anderen HTML Tags probiert überall das gleiche. Und ja, im Adminbereich sind die entsprechenden Tags erlaubt.

Weis jemand Rat?

Verfasst: 15.03.2007 18:29
von K1ckEM
*schieb* (24 h vergangen)

Verfasst: 15.03.2007 18:34
von Miriam
Hast Du evtl. einen Fehler beim Einbau dieses Hacks gemacht?

Verfasst: 16.03.2007 11:58
von K1ckEM
Nein, leider nicht. Hab eben mein (unverändertes) Backup der posting.php wieder hochgeschoben. Keine Veränderung.

In welcher Datei könnte den der Fehler liegen? vielleicht find ich was anderes..

Verfasst: 18.03.2007 14:43
von K1ckEM
Ein letzter Versuch: *schieb*

Verfasst: 07.04.2007 17:01
von K1ckEM
Bin leider immer noch keinen Schritt weitergekommen.

Kann mir vielleicht ein Profi sagen, in welchem Bereich ich suchen sollte? Ich durchschau php nicht wirklich, aber vielleicht kann ich den fehler eingrenzen.

Also nochmal: Html funktioniert in der Vorschau wunderbar, die Befehle sind freigegeben, html ist eingeschaltet. wenn man aber sendet, wird der html Code mit angezeigt und nicht umgesetzt.

Für Hilfe wäre ich sehr dankbar, da ich html unbedingt benutzten muss, um mein Board-Konzept so umzusetzen. Danke!!!

Edit: Schlechte Forumulierung geändert.

Verfasst: 08.04.2007 10:24
von gn#36
Ein erster Schritt wäre wohl ein Blick in die Datenbank. Dort kannst du schon mal nachsehen, in welcher Form der Code gespeichert wird (Achte insbesondere darauf, ob hier vielleicht bereits Änderungen zu deiner Eingabe passieren, z.b. dass statt < in der Datenbank & l t ; (natürlich zusammen, aber das wird sonst ersetzt) steht, so dass das von vorneherein schon nicht mehr korrekt interpretiert werden kann.

Die Funktionen zum Umwandeln des Codes befinden sich in der functions_post.php und evtl. der bbcode.php. Hast du an einer dieser Dateien Änderungen vorgenommen (z.b. bei einem Mod)?

Hast du kontrolliert ob das Häkchen bei HTML an immer noch gesetzt ist nachdem du die Vorschau benutzt hast? Evtl. liegt der Fehler nämlich auch in der posting.php Datei. Dieser Fehler müsste sich durch eine kleine Codezeile in der functions_post.php zumindest ein wenig eingrenzen lassen indem wir einfach kontrollieren ob beim Aufruf der Funktion zur Prüfung des Codes testen, ob HTML als "aktiviert" übergeben wird. Schau aber erst mal in die Datenbank.

Verfasst: 10.04.2007 01:42
von K1ckEM
Danke erstmal für die Antwort!
gn#36 hat geschrieben:Ein erster Schritt wäre wohl ein Blick in die Datenbank...
Hab ich gerade gemacht, ist korrekt, also ohne Umwandlung eingetragen.

gn#36 hat geschrieben: Die Funktionen zum Umwandeln des Codes befinden sich in der functions_post.php und evtl. der bbcode.php. Hast du an einer dieser Dateien Änderungen vorgenommen (z.b. bei einem Mod)?
Nicht das ich wüsste, aber ich fang gleich zu suchen an.
gn#36 hat geschrieben: Hast du kontrolliert ob das Häkchen bei HTML an immer noch gesetzt ist nachdem du die Vorschau benutzt hast?
Jap. Es ist noch gesetzt.

Ich such mal in den genannten Datein weiter.


EDIT: Hab eben was interessantes herausgefunden. In meinem Profil habe ich "HTML immer aktivieren" gesetzt. Da konnte ich plötzlich die Threads korrekt anzeigen.

Ich dachte, diese Option bezieht sich darauf, das beim posten einer Nachricht HTML immer schon an ist, und man es nicht erst per Häckchen "anklicken" muss... ?

Verfasst: 10.04.2007 18:18
von gn#36
So ähnlich sollte es auch funktionieren.

Wenn ich mich nicht irre liegt das an dieser Zeile der posting.php:

Code: Alles auswählen

$html_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_html']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_html'] : $userdata['user_allowhtml'] );
Die ist für den Status "erlaubt" / "verboten" zuständig (mit einer Abfrage die Prüft ob im Board HTML überhaupt erlaubt ist).

Wobei ich mir gerade mal die viewtopic.php angesehen habe und da ein wenig über diese Stelle stolpere:

Code: Alles auswählen

	//
	// If the board has HTML off but the post has HTML
	// on then we process it, else leave it alone
	//
	if ( !$board_config['allow_html'] || !$userdata['user_allowhtml'])
	{
		if ( $user_sig != '' )
		{
			$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig);
		}

		if ( $postrow[$i]['enable_html'] )
		{
			$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
		}
	}
Danach entscheidet die Einstellung des Users im Profil, ob HTML dargestellt wird oder nicht. Es müssen also gewissermaßen beide Zustimmen, Autor und User, damit HTML angezeigt wird. Das könnte jetzt interessanterweise dazu führen, dass HTML beim Gast angezeigt wird und bei den Registrierten Usern nicht, denn wenn beim Gast HTML aktiviert sein sollte, dann bekommt er es auch angezeigt...
Willst du das ändern sollte es genügen, einfach diesen Code aus der obigen Stelle zu entfernen:

Code: Alles auswählen

|| !$userdata['user_allowhtml']
(alle Klammern da lassen wo sie sind und alles vor der Änderung sichern!)
Das sollte eigentlich dann bewirken, dass HTML immer angezeigt wird, unabhängig von den Usereinstellungen. Warum das so seltsam voreingestellt ist weiß ich nicht.
Ich habe auch mal eine kleine Modifikation gebastelt, die HTML nur für bestimmte User zulässt (z.b. nur Admins oder eine bestimmte Gruppe, ganz nach Wunsch). Falls du da dran Interesse hast solltest du mal hier im Forum danach suchen...

Verfasst: 15.04.2007 21:42
von K1ckEM
gn#36 hat geschrieben: ...Danach entscheidet die Einstellung des Users im Profil, ob HTML dargestellt wird oder nicht. Es müssen also gewissermaßen beide Zustimmen, Autor und User, damit HTML angezeigt wird. Das könnte jetzt interessanterweise dazu führen, dass HTML beim Gast angezeigt wird und bei den Registrierten Usern nicht, denn wenn beim Gast HTML aktiviert sein sollte, dann bekommt er es auch angezeigt...
Jeah, das ist echt komisch. Hab jetzt von Hand alle User (Board ist noch nicht veröffentlicht, sind erst 10 :) auf "HTML an" gestellt und Standart für neue User ist das auch.

Trotzdem komisch, das dieses Häckechen im Profil sich auch auf das Anzeigen von HTML bezieht. Macht doch irgendwie keinen Sinn... Danke für deinen Tip mit "|| !$userdata['user_allowhtml'] " löschen, werd das mal ausprobieren. Problem gelöst :)