• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] automatischer Zeilenumbruch

F

felixprogram

Guest
Hallo Forum.
Ich habe da eine Frage,auf die ich keine Antwort finden konnte.Mein Problem ist folgendes:
Ich arbeite zurzeit an einer Notizwebseite. Dort will ich nun,dass wenn der User einen Absatz schreibt,dass dieser als Zeilenumbruch in der Notiz zu sehen ist. Wie geht das?

Danke schon im vorraus!
Ich hoffe,ich habe mich verständlich ausgedrückt,denn das ist mein erstes selbst eröffnetes Thema.
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Irgendwie sind deine Informationen etwas spärlich. Ich nehme an, deine Webseite verwendet eine <textarea> zur Eingabe der Notiz und speichert diese dann in einer Datenbank wie mySql. Dann wird sie ausgelesen und in einem <div> Bereich angezeigt. Nun hängt es von der CSS Einstellung der <textarea> ab, wie ein Zeilenumbruch zum PHP übertragen wird. Auf jeden Fall musst dann entweder vor dem Speichern oder vor dem Anzeigen den Zeilenumbruch \n durch einen HTML Zeilenvorschub <br/> ersetzen oder das Anzeige-div durch CSS dazu bringen, einen \n auch umzubrechen.
 
Werbung:
Was hat CSS damit zu tun?
Ich dachte, je nach word-wrap werden Zeilenumbrüche auch automatisch erzeugt bzw. ignoriert und entsprechend auf den Server übertragen. Wenn dem nicht so ist, umso besser, aber das ist auch nicht das wesentliche.

Auf jeden Fall nur vor der Ausgabe
Das ist sicher besser, weil man dann das Original speichert. Funktionieren tut prinzipiell beides.
 
Irgendwie sind deine Informationen etwas spärlich.
Wie gesagt,ist mein erster Thread.
Datenbank wie mySql...und in einem <div> Bereich angezeigt
Leider nein,gleich in einer Html-datei und in keinem div ausgegeben.
Auf jeden Fall musst dann entweder vor dem Speichern oder vor dem Anzeigen den Zeilenumbruch \n durch einen HTML Zeilenvorschub <br/> ersetzen
Okay,werde ich so bald wie möglich ausprobieren.

Danke auch an deine Hilfe bdt600!
 
Leider nein,gleich in einer Html-datei und in keinem div ausgegeben
Ob in div (als Element einer HTML-Datei) oder in einer kompletten HTML Datei macht keinen Unterschied, dann musst es vor dem Speichern umwandeln oder den Text doch mittels <pre> einschließen bzw. in einem entprechend CSS formatierem Element einbinden. Schau mal nach der PHP Funktion nl2br.

Nachtrag: Du musst natürlich dann auch aufpassen, dass dir niemand komischen HTML Code einschleust wie etwa
Code:
<script> while(true) { alert('hallo'); }</script>
Also vor dem Speichern noch die HTML Sonderzeichen wie < > oder in entities umwandeln, dazu gibt es auch PHP Funktionen wie htmlspecialchars oder htmlentities
 
Zuletzt bearbeitet:
Werbung:
Nachtrag: Du musst natürlich dann auch aufpassen, dass dir niemand komischen HTML Code einschleust wie etwa Also vor dem Speichern noch die HTML Sonderzeichen wie < > oder in entities umwandeln, dazu gibt es auch PHP Funktionen wie htmlspecialchars oder htmlentities
Alle Codes werden umgewandelt,wie z.B.:
Code:
<script> und <?php oder ?> und </script> und < und >
...in Leerzeichen.
Ich habe das alles gut durchdacht,aber danke für den Tipp trotsdem.
 
Danke an alle,die mitgeholfen haben,das Problem ist gelöst mithilfe von:
PHP:
$Result = str_replace( "\n", '<br >', $Text );
Vielen Dank!

Übrigens wird der Notizblock bald online sein,dann werde ich ihn hier vorstellen(Obwohls da schon unendliche gibt).
 
Zuletzt bearbeitet von einem Moderator:
Alle Codes werden umgewandelt ..in Leerzeichen
Aber dadurch werden Informationen verfälscht und eventuell missverständlich und schwer lesbar. Warum nicht in HTML Entities und eventuell ein paar einfach zum Formatieren wie <br>, <strong>, <u> zulassen oder es gleich korrekt machen und BB-Codes zulassen. Dafür gibt es sogar PHP Erweiterungen.
 
Werbung:
Das mit dem BB-Codes habe ich schon gemacht,desswegen habe ich die html-codes so behandelt.

Aber das Thema ist dank dir sowiso erledigt.

Bitte Thema schliessen.
 
Das mit dem BB-Codes habe ich schon gemacht,desswegen habe ich die html-codes so behandelt
OK, es ist dein Notizblock. Ich sehe auf jeden Fall keinen Nachteil darin, HTML Entities statt Leerzeichen zu verwenden (bis auf ein paar Byte mehr Platzbedarf), aber diverse beim Ersetzen durch Leerzeichen. Diese Forum ist ja auch ein Beispiel dafür, dass man im Text schön
<ich> <finde> <das> <spitze>
schreiben kann und es kommt am Ende nicht
ich finde das spitze
dabei raus.
 
Und wie geht das dann das es nicht als Html-Code geschrieben wird?
 
Werbung:
Mir ist noch etwas zum Thema eingefallen. Ich habe vor weit über 10 Jahren mein eigenes Gästebuch geschrieben, siehe http://rainer-rosenberger.de/index.php?page=guestbook&user=rr. Das basierte auch auf HTML-Dateien (und tut es heute noch). Grund war, dass es damals sehr teuer war, eine mySql Datenbank zu betreiben. Weil es kaum neue Einträge gibt. lasse ich es auch und migriere nicht mehr. Aber ich würde es heute auf keinen Fall mehr so machen, und das hat folgende Gründe:
  • Du kannst nie vernünftig Such- oder Sortierfunktionen integrieren.
  • Bei hohen Zahlen (zehntausende von Einträgen) kommst du irgendwann an Grenzen des Dateisystems als Basis.
  • Der verwendete HTML Code in den abgespeicherten Dateien ist völlig veraltet, die Umstellung auf HTML5 und Formatierung mittels CSS wäre nur möglich, wenn ich alle HTML-Dateien anfasse und umschreibe.
Daher mein dringender Rat:

Baue deine Notizfunktion von Anfang an auf einer Datenbank auf. Wenn du die Kosten von mySql scheust, dann nimm das File-basierende SQLite3, eine spätere Umstellung ist dann leicht, wenn du beispielsweise von Anfang an PDO als Zwischenschicht für den DB-Zugriff verwendest.
 
Zuletzt bearbeitet:
Werbung:
Daher mein dringender Rat:

Baue deine Notizfunktion von Anfang an auf einer Datenbank auf. Wenn du die Kosten von mySql scheust, dann nimm das File-basierende SQLite3, eine spätere Umstellung ist dann leicht, wenn du beispielsweise von Anfang an PDO als Zwischenschicht für den DB-Zugriff verwendest.

Oder suche dir einen cloud-basierten Service, der die notwendigen Security-Features bereitstellt und bei dem du mit minimalem Aufwand REST-Endpoints kreierst, auf welche deine App oder Website zugreifen kann. Was jetzt eher als Ratschlag an dich als den TE gemeint ist.
 
Oder suche dir einen cloud-basierten Service ....
Oder eine bereits fertige kostenlose Lösung zum Anpassen. Tronjer hat völlig recht, den Punkt Sicherheit habe ich ganz vergessen zu erwähnen. Sobald du ein wenig bekannter wirst und in Suchmaschinen auftaucht, wirst dich vor Spam-Versuchen kaum retten können und es ist eine eigene Wissenschaft, diese zu erkennen und abzuwehren. Captcha, IP-Filter, Bad-Word-Filter und ähnliches gehören dazu.
 
Werbung:
local = localhost :cool:
Nicht unbedingt, lokal zeigt auf meine Entwicklungsumgebung, also immer auf den gleichen PC. Ich habe auf allen Clients die entsprechenden Domain-Einträge in die hosts gemacht. Leider nicht auf Android Tablett und Handy, da kommt man nicht ran ohne Rooten und da schrecke ich zurück. Meine Fritzbox kann als Router und DNS Server meines Wissens leider keine zusätzlichen Namen zur Auflösung aufnehmen.
 
Zurück
Oben