Nachrichtensystem, lange Nachrichten zu groß für das Layout
markus_walther
- php
Hallo!
Ich habe folgendes Problem:
Bei meinem Nachrichtensystem kann es passieren dass - wenn man lange Nachrichten schreibt - sie über den Rand vom Layout gehen. Wie kann ich das verhindern ? (table border='500px' funktioniert nicht, genau das gleiche in CSS auch nicht).
Dann habe ich noch eine andere Frage:
Wenn jemand eine Nachricht absendet, werden die Zeilenumbrüche, die der User per ENTER-Taste eingefügt hat, nicht mitgespeichert --> Es gibt einen zusammenhängenden Text, nicht mehrere Zeilen. Wie kann ich das ändern?
Danke für jede Hilfe
Markus!
@@markus_walther:
nuqneH
Ich habe folgendes Problem:
Beschreibe es!
Dann habe ich noch eine andere Frage:
Dann stelle sie!
Qapla'
Ich habe folgendes Problem:
Bei meinem Nachrichtensystem kann es passieren dass - wenn man lange Nachrichten schreibt - sie über den Rand vom Layout gehen. Wie kann ich das verhindern ? (table border='500px' funktioniert nicht, genau das gleiche in CSS auch nicht).
overflows:scroll sollte eine geeignete Sandbox für unberechenbaren Content darstellen.
Wenn jemand eine Nachricht absendet, werden die Zeilenumbrüche, die der User per ENTER-Taste eingefügt hat, nicht mitgespeichert --> Es gibt einen zusammenhängenden Text, nicht mehrere Zeilen. Wie kann ich das ändern?
Indem du in deinem Script die Stelle suchst, die Newlines entfernt.
Werden Newlines aber entfernt, weil es sich um ein Zeilenorientiertes Speichermedium handelt, so musst du beim Lesen aus der DB und dem Schreiben in die DB einen escape Mechanismus einführen und immer einhalten.
schreiben ind DB:
s/\n/\n/g
lesen aus DB
s/\\n/\n/g
Das gleiche gilt es nicht nur auf Recordseparatoren sonder auch auf Feldseparatoren anzuwenden.
mfg Beat
Mahlzeit markus_walther,
Bei meinem Nachrichtensystem kann es passieren dass - wenn man lange Nachrichten schreibt - sie über den Rand vom Layout gehen. Wie kann ich das verhindern ?
Indem Du an der passenden Stelle einen Zeilenumbruch erlaubst.
(table border='500px' funktioniert nicht,
Natürlich nicht, das ist ja erstens schließlich auch falscher Code (<http://de.selfhtml.org/html/referenz/attribute.htm#table@title=das Attribut "border" erwartet die Dicke des Rahmens in Pixeln - als rein numerischen Wert>) und zweitens wenig sinnvoll - oder willst Du einen 500 Pixel breiten Rand um Deine Tabelle?
Übrigens hast Du oben von Nachrichten geschrieben - nicht jedoch von tabellarischen Daten.
genau das gleiche in CSS auch nicht).
Wie sieht "genau das gleiche in CSS" aus?
Dann habe ich noch eine andere Frage:
Wenn jemand eine Nachricht absendet, werden die Zeilenumbrüche, die der User per ENTER-Taste eingefügt hat, nicht mitgespeichert --> Es gibt einen zusammenhängenden Text, nicht mehrere Zeilen. Wie kann ich das ändern?
Gar nicht. Jegliche Whitespaces (Leerzeichen, Zeilenumbrüche, Tabulatoren usw.) werden in HTML immer zusammengefasst und als einfache Leerzeichen dargestellt. Wenn Du Zeilenumbrüche explizit darstellen willst, <http://de.selfhtml.org/html/text/zeilenumbruch.htm#erzwingen@title=füge sie explizit ein>.
Was verstehst Du übrigens unter "per ENTER-Taste einfügen"? Ich rate mal: der Benutzer schickt ein Eingabeformular ab, das dann Server-seitig verarbeitet wird (hast Du *deswegen* den Themenbereich "PHP" gewählt?). Dann wäre nl2br() ein Ansatzpunkt ...
MfG,
EKKi
@ Ekki: Ich meinte 'width' und nicht 'border'... Hab mich wohl irgendwie verschrieben...
nl2br() funktioniert super. Danke dafür...
@Beat: overflow funktioniert auch. Danke ;)
@ Gunnar: Ich habe mein Problem beschrieben, und habe auch eine Frage gestellt, oder wozu waren sonst die Fragezeichen da? Außerdem konnten die anderen beiden meine Fragen ja auch gut beantworten...
Danke für die schnelle Hilfe
markus
@@markus_walther:
nuqneH
@ Gunnar: Ich habe mein Problem beschrieben, und habe auch eine Frage gestellt, oder wozu waren sonst die Fragezeichen da? Außerdem konnten die anderen beiden meine Fragen ja auch gut beantworten...
Bei denen war schon Knut. Mein Weihnachtsbaum steht noch; da hängt meine Glaskugel dran.
Qapla'