formatierung bevor in der datenbank geschrieben wird

Gast #3671918
Lesenswert?

habe folgendes zugriffsscript auf db:
1
$inhalt = mysqli_real_escape_string($verbindung, $inhalt);
2
        $datum = mysqli_real_escape_string($verbindung, $datum);
3
        $autor = mysqli_real_escape_string($verbindung, $autor);
4

5
        $query = "INSERT INTO mathe_beitraege(inhalt, datum, id_thema, autor)
6
                                VALUES('$inhalt','$datum','$id_thema','$autor')";

jedoch wenn ich irgendwelche Leerzeichen oder Zeilenumbrüche in die 
textarea hineinschreib welche komplett und unverändert in der Variable 
$inhalt gespeichert ist mit der REQUEST Methode, dann wird in der 
datenbank das im bild gespeichert was zunächst einmal richtig ausschaut 
(bild1). Jedoch wenn ich doppelklicke auf das felld dann kommt bild 2. 
Und das schaut nicht mehr richtig aus.

Jedenfalls wenn ich die daten wieder auslese und mittels echo in ein <p> 
schreibe dann wird maximal 1 leerzeichen angezeigt.

Also habe ich versucht:

$inhalt = nl2br(mysqli_real_escape_string($verbindung, $inhalt));

da passiert aber das selbe..

was mache ich falsch??
Angehängte Dateien:
#3671951
Lesenswert?

emi schrieb:

> (bild1). Jedoch wenn ich doppelklicke auf das felld dann kommt bild 2.
> Und das schaut nicht mehr richtig aus.

Welches feld? Wass passiert dann? Wird die Seite neu geladen oder ist 
das problem auf der Client-seite?

> Jedenfalls wenn ich die daten wieder auslese und mittels echo in ein <p>
> schreibe dann wird maximal 1 leerzeichen angezeigt.
>
Könnte ein Clientseitiges problem sein. Ist die css option white-space 
auf pre gesetzt?
>
> $inhalt = nl2br(mysqli_real_escape_string($verbindung, $inhalt));
>
Wenn es ein serverseitiges problem ist, kann ich nicht sagen wo. 
Vileicht könte man das problem dann aber mit base64_encode und 
base64_decode lösen. Die Daten einfach in base64 in der Datenbank 
speichern...
>
> was mache ich falsch??

Keine ahnung.
Gast #3672001
Lesenswert?

emi schrieb:
> $inhalt = nl2br(mysqli_real_escape_string($verbindung, $inhalt));

Das hier funktioniert jetzt nicht, aber ich habe jetzt das hier 
probiert:

$text = mysqli_real_escape_string($verbindung,nl2br($text));

und jetzt haut es hin!!

Bleibt nur noch das Problem dass html tags korrekt ausgeführt werden. 
Gibt es eine Funktion die alle Html tags so formatiert, dass sie auch 
wirklich textuell ausgegeben werden? Sprich das real escape macht dass 
die anführungszeichen escaped werden. Und ich suche eine funktion die 
irgendetwas vor html tags schreibt, damit sie vom browser nicht 
interpretiert werden..

danke schonmal im Voruas!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren