Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

POST von HTML Area Textfield Zeilenumbruch

Frage Entwicklung PHP

Mitglied: rsauerwein

rsauerwein (Level 1) - Jetzt verbinden

24.03.2010, aktualisiert 05.04.2010, 8972 Aufrufe, 7 Kommentare

Hallo Community,

ich habe am Montag mit PHP angefangen und folglich ist mir noch einiges unklar. Zu meiner Überraschung konnte mir Google bei dieser "Anfängerfrage" auch keine wirklich zufriedenstellende Antwort liefern, also versuchte ich selbst Lösungen zu entwerfen.

Problem: Die Eingabe von einem Textareafield (HTML) sollte auch wieder formatiert (also mit den vom User getätigen Zeilenumbrüchen) ausgegeben werden können.

Wenn ich zB in die Textarea
"hallo
wie gehts
cu"
eintippe, dann erhalte ich im Falle von echo $_POST... "hallo wie gehts cu" zurück. Der Quelltext ließ mich vermuten, dass Zeilenumbrüche so dargestellt werden: "\n"

1. Lösung von mir:
Den Inhalt von _$POST.. zwischen pre Tags positionieren -> geht wunderbar... elegant: Nö, eher nicht

Die zweite und wohl elegantere Lösung:
mit str_replace einfach \n durch <br /> ersetzen.

Meine Frage: Gehts evt. noch besser? An der Stelle sollte ich vlt erwähnen, dass die Daten in einer Datenbank gespeichert werden. Obs wirklich so gut ist, wenn dort alles voller <br> Tags usw ist...


Und wenn wir schon beim Thema Zeilenumbrüche sind (im Buch wird drauf leider nie eingegangen)
Der von PHP erzeugte HTML Quellcode ist teilweise extremst grauenhaft zum Lesen, da längere whileschleifen mit Echoanweisungen im HTML Quelltext keinen einzigen Zeilenumbruch machen. Somit ist der HTML Quelltext unformatiert. Was kann ich dagegen tun? Einfach immer am Ende einer Echoanweisung "\n" anhängen?

Danke
Mitglied: nxclass
24.03.2010 um 13:28 Uhr
Der von PHP erzeugte HTML Quellcode ist teilweise extremst grauenhaft zum Lesen ...
arbeite mit Templates bzw. Ersetzungsmarken

Obs wirklich so gut ist, wenn dort alles voller <br> Tags usw ist...
Also die DB sollte schon die Daten enthalten wie diese vom Benutzer kommen.
Und die Ersetzung von "\n" nach '<br />' ist durchaus bekannt, da es nicht das einzige ist. Denke mal an Zeichen wie Ä,Ü und Ö - diese sollten auch in den entsprechenden HTML Code umgewandelt werden. Danach kannst Du dir noch Gedanken machen was passiert wenn jemand Javascript oder HTML Code in dein Textfeld eingibt.
Bitte warten ..
Mitglied: rsauerwein
24.03.2010 um 13:47 Uhr
Zitat von nxclass:
arbeite mit Templates bzw. Ersetzungsmarken

Danke
Damit kann ich spontan natürlich nicht viel anfangen, jedoch kann mir da Google bestimmt gut weiterhelfen..

Und die Ersetzung von "\n" nach '<br />' ist durchaus bekannt, da es nicht das einzige ist. Denke mal an
Zeichen wie Ä,Ü und Ö - diese sollten auch in den entsprechenden HTML Code umgewandelt werden. Danach kannst Du dir
noch Gedanken machen was passiert wenn jemand Javascript oder HTML Code in dein Textfeld eingibt.

Stimmt, an diverse Umlaute dachte ich noch garnicht. Das schreit ja eigentlich danach, sämtliche Posts durch eine Funktion laufen zu lassen, um diese dort korrekt zu formatieren.

Eingaben wie JavaScripts, oder auch irgendwelche SQL Anweisungen sind wohl so ein Thema für sich und erfordern wohl richtig viel Zeit. Deshalb werde ich versuchen erstmal mit PHP so klarzukommen und mich danach umgehend mit Themen betreffend Sicherheit beschäftigen.
Als kleines Übungsprojekt werde ich erstmal eine kleine Webanwendung für max. 10 Anwender schreiben und diese Anwender werden bestimmt keine SQL Anweisungen über ein Formular ausführen.. ;)
Bitte warten ..
Mitglied: nxclass
24.03.2010 um 20:12 Uhr
Damit kann ich spontan natürlich nicht viel anfangen, ...
01.
// HTML Code 
02.
$html = <<<__HTML__ 
03.
<div> 
04.
{TEXT} 
05.
</div> 
06.
__HTML__; 
07.
 
08.
// oder aus einer Datei 
09.
$html = file_get_contents( 'template.html' ); 
10.
 
11.
// Liste mit Ersetzungen 
12.
$list = array( 
13.
    '{TEXT}' => 'Hallo World!' 
14.
); 
15.
 
16.
// ersetzen und anzeigen 
17.
echo str_replace( array_keys($list), array_values($list), $content);
... als kleines Beispiel.

Schau dir mal die Befehle: htmlentities() und nl2br() an.
Bitte warten ..
Mitglied: dog
24.03.2010 um 20:42 Uhr
Denke mal an Zeichen wie Ä,Ü und Ö - diese sollten auch in den entsprechenden HTML Code umgewandelt werden.

Warum denn das?
Wenn man ein Grundwissen von Zeichensätzen hat ist das nicht notwendig.

und diese Anwender werden bestimmt keine SQL Anweisungen über ein Formular ausführen.. ;)

Nö, aber evtl. Javascript. Das nennt sich dann XSS-Attacke und sowas zu vermeiden ist absolut trivial:
01.
htmlspecialchars($input,ENT_COMPAT,'UTF-8');
Der Quelltext ließ mich vermuten, dass Zeilenumbrüche so dargestellt werden: "\n"

Werden sie ja auch.
Aber HTML stellt keine Zeilenumbrüche (und keine multiplen Leerzeichen) dar, wenn man sie nicht explizit via <br/> macht.

Meine Frage: Gehts evt. noch besser? An der Stelle sollte ich vlt erwähnen, dass die Daten in einer Datenbank gespeichert werden. Obs wirklich so gut ist, wenn dort alles voller <br> Tags usw ist...

Den richtigen Tipp hat nxclass schon gegeben: nl2br()
Bitte warten ..
Mitglied: rsauerwein
24.03.2010 um 22:49 Uhr
Danke für eure Erklärungen/Beispiele

Die Botschaft vom Templatebeispiel habe ich verstanden, ich werde bald mal anfangen damit "rumzuspielen". Aber toll, der Ansatz öffnet mir einige neue Möglichkeiten (nach 2 Tagen ist mein Wissen verständlicherweise noch nicht so ausgebaut) . So könnte ich doch zB. auf jeder Seite (falls nötig) die gesamte XHTML Deklaration einsetzen und Felder wie <title>{title}</title> vorsehen.

Evt. sollte ich für ein besseres Grundverständnis, wie man solide Webanwendungen umsetzen könnte, mir mal den ein oder anderen Quelltext von interessanten Webanwendungen ansehen.

Warum denn das?
Wenn man ein Grundwissen von Zeichensätzen hat ist das nicht notwendig.
Also genügt die utf-8 Deklaration?
Bitte warten ..
Mitglied: rsauerwein
28.03.2010 um 16:10 Uhr

Danke, den Tipp habe ich zuvor schon erhalten.

Ich markiere den Thread zwecks Übersichtlichkeit mal als gelöst
Bitte warten ..
Ähnliche Inhalte
CSS
Zeilenumbruch ohne br
gelöst Frage von ANTiNATORCSS2 Kommentare

Ich habe einen <div> in den durch ein phpscript der Inhalt einer Textdatei eingegeben wird. Welcher wiederum aus einem ...

Batch & Shell
Zeilenumbruch in eventcreate
Frage von hansis1Batch & Shell7 Kommentare

Hallo! Ich möchte mit eventcreate in das WindowsLog schreiben. Allerdings brauche ich dafür auch Zeilenumbrüche. Wie kann ich das ...

Microsoft Office
Word: Zeilenumbruch bei Textmarke entfernen
Frage von BadgerMicrosoft Office

Hallo, folgende Ausgangslage: In einem Word Dokument sind Textmarken von verschiedenen Excel-Zeilen vorhanden: Das Problem ist, dass automatisch immer ...

Batch & Shell
Powershell - Zeilenumbruch in Mail
gelöst Frage von rodgerwilcoBatch & Shell2 Kommentare

Hallo zusammen, es wäre schön, wenn jemand zu meinem Problem eine Lösung hätte. Ich möchte per Mail Statusinformationen zu ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 104 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
Frage von HelloWorldBatch & Shell16 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...

Hardware
Fujitsu Workstation mit K80 und Quadro P5000, Fehlermeldung: Connect Power Adapter
Frage von MachelloHardware7 Kommentare

Hallo Zusammen, ich benötige euren Rat da ich ratlos bin. Folgende Konfiguration im Büro: Fujitsu Workstation Celcius R940 Power ...