Seite 1 von 1
Zeilenumbrueche ohne HTML
Verfasst: 10.04.2006 20:05
von Coaster-Friend
Ich bin zur Zeit am Coden eines
Wikis, und dafuer brauche ich die Moeglichkeit, Artikel zu schreiben.
Damit diese uebersichtlich bleiben, braucht man Zeilenumbrueche. Allerdings funktionieren diese bei mir nicht, ausser ich aktiviere HTML durch Entfernen der htmlspecialchar() in write.php und durch <br />. Ein normaler Zeilenumbruch, wie man es vom phpBB kennt, bleibt dagegen einzeilig, wenn er kurz genug ist. Wie ist es nun moeglich, auch ohne <br /> und mit htmlspecialchar() Zeilenumbrueche darzustellen? "\n" funktioniert uebrigens nicht.
MfG
Dominic Laumer
P.S.: Die Sourcen koennt ihr unter coasterfriend.co.funpic.de/gplLexika/gplLexika.zip downloaden. Die "write.php" hat die htmlspecialchars noch drin, die Version, die auf der Seite eingesetzt wird, hat diese dagegen nicht drin.
Verfasst: 10.04.2006 20:43
von Maxxxx
Wie werden deine Artikel geschrieben? Wenn du es auf Basis einer Datenbank machst, was ich mal denke kann man doch den Text so schreiben, also mit eingespeicherten Leerzeichen. Einfach dann den Befehl nbr12 (oder so ähnlich)m achen und dann werden die automatisch mit eingefügt.
Schaue doch mal bei
http://www.selfphp.de vorbei, da gibts ne Menge hilfen und Codes.
Verfasst: 10.04.2006 20:45
von S2B
Sprich: Zuerst werden alle HTML-Codes "gelöscht" und dann alle \n durch \n<br />\n ersetzt.

Verfasst: 10.04.2006 22:06
von Maxxxx
Genau so ähnlich wars doch.

Verfasst: 11.04.2006 01:31
von Coaster-Friend
Danke, das funktioniert

.
Auch ihr duerft mehr oder weniger schwachsinnige Beitraege schreiben *g*. Geht ueber die write.php

.
MfG
Dominic Laumer
Verfasst: 11.04.2006 17:01
von Coaster-Friend
Ich bins nochmal. Ich habe ein weiteres Problem, und zwar:
Wenn ich einen Artikel versehentlich zweimal absende oder zwei grundverschiedene Artikel mit demselben Namen schreibe, werden sie entweder zweimal in die DB reingeschrieben, oder (wenn ich den nachfolgenden Code mit einem Ausrufezeichen versehe) nicht reingeschrieben. Mit dem Code wollte ich ursprueglich doppelte Artikel vermeiden, allerdings besteht das oben beschriebene Problem. Ihr findet es in
dieser Datei zwischen den Zeilen 45-91. Der erste Teil des fehlerhaften Code wird immer dann ausgefuehrt, wenn in "if ($result)" kein Ausrufezeichen vor dem "$result" steht, der andere nur dann, wenn vor "$result" ein Ausrufezeichen steht.
Ich hoffe, ihr koennt mir helfen.
MfG
Dominic Laumer
Verfasst: 22.04.2006 15:23
von Handballer
Ich habe mir den code nicht genauer angeschaut aber kann es sein dass du nachder UPDATE-Funktion suchst?
Code: Alles auswählen
$sql = "UPDATE `Tabellenname` SET `Feldname` = 'neuer inhalt';
Verfasst: 22.04.2006 15:48
von S2B
@Coaster-Friend: Mal ne Frage: Willst du das Wiki nachher öffentlich zum Download anbieten? Wenn ja, dann würde ich mir an deiner Stelle mal Gedanken über meinen Code machen.
Edit:
Ich habe deine Datei mal "poliert", vielleicht hilft dir das ja weiter:
http://home.arcor.de/s.praetorius/write.php.txt (*grml* FTP geht nicht...)
Ich würde mir an deiner Stelle mal die beiden Dateiversionen mit WinMerge o.Ä. vergleichen und schauen, was ich verändert habe. Außerdem würde ich mir mal Gedanken über ein Error-Handling machen, denn End-User werden nicht wissen, an welchem Query sie den Error-Output auskommentieren müssen. Auch würde ich Sachen wie eine Nachrichten-Box anzeigen (box.tpl) (=> Funktion) oder das Hinzufügen des DB-Prefixes (=> Konstanten!) vereinfachen, dann wird der Quellcode nämlich um einiges übersichtlicher.
Edit2: Ich habe die Standard-Methoden von der DB-Klasse aus dem phpBB verwendet, weil ich davon ausging, dass du sie verwendest. Falls nicht, musst du $db->sql_fetchfield() durch den passenden Zweizeiler ersetzen.