zeilenumbrüche
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzeigen
ausgabe
beitrag
beschrieb
daten
dienen
eingabe
einst
insert
mache
quelltext
schnipsel
statement
tag
tasten
umbruch
variable
vorbehalt
zeile
zeilenumbruch
-
ich speichere den inhalt einer textarea in einer tag/daten">datenbank ab. wrap der textarea ist auf physical. beim anzeigen wird der umbruch aber nicht angezeigt.
was muss ich machen, damit der zeilenumbruch, der eigentlich durch wrap physical ?bertragen werden sollte, auch in der ausgabe angezeigt wird bzw. umgebrochen wird.
danke im voraus
mfg apollo13 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
jo hatte ad aproblem auch benutze die fnction nltobr():
nltobr($string_mit_den_text) -
funktioniert die immer, soll hei?en wird in die datenbank ein nl eingetragen oder muss ich nltobr vorm eintragen machen oder kann ichs nach dem eintragen machen, letzteres brauche ich.
mfg apollo13 -
nein
wenn du durch eine textarea in dei db eintr?ge eintr?gst ist das gut
wen du die daten ausgibst dann machst einfach vor der ausgabe der strings nl2br()
du brauchst nicht extra machen
zb:
while ($daten = mysql_fetch_object($die query))
{
echo nl2br($daten->text);
}
mit fetch_array oder row geht das nat?rlich auch -
zeilenumbr?che werden in die Datenbank mit \n gespeichert, es gibt mehrere M?glichkeiten das in <br> umzuwandeln wie replace usw.
Aber PHP hat daf?r eine Funktion vorbehalten, die am besten ist. Sie wurde oben genannt -
so, bin wieder da sorry dass ich solange nicht geanwortet habe ...
also:
ein enter wird korrekt in die datenbank ?bertragen, ein zeilenumbruch nicht, da wrap nicht funzt, habe geh?rt wird nicht von allen browsern unterst?zt.
also wie mache ich es, dass die automatischen zeilenumbr?che in die datenbank geschrieben werden.
zeilenumbruch ist \n oder?? zumindest im linux
und enter auch \n??
warum wird dann in die db nur dass enter ?bertragen
hoffe ihr k?nnt helfen
mfg apollo13 -
apollo13 schrieb:
also:
ein enter wird korrekt in die datenbank ?bertragen, ein zeilenumbruch nicht, da wrap nicht funzt, habe geh?rt wird nicht von allen browsern unterst?zt.
[...]
warum wird dann in die db nur dass enter ?bertragen
[...]
Also 'enter' ist eine Taste auf der Tastaur. Und ein Zeileinumbruch ist ein Zeichen (Charakter), welches in Eingabefeldern, Textprogrammen, ... durch die Entertaste erzeugt wird. Der Zeilenumbruch ist wir von HTML aber (mit Au?nahme von <pre></pre>, ...) nur als Leerzeichen interpretiert. Ein Zeilenumbruch muss in HTML-Codes als <br /> angegeben werden. Wenn du also den Text aus deiner Datenbank wieder ausgeben willst musst du ihn vorher mit nl2br() vormatieren.
echo nl2br($text_aus_datenbank); -
das mit
nl2br haben andere schon geschrieben, das ist nicht mehr das problem
das problem liegt nicht !!!! bei der ausgabe
sondern bei der eingabe:
nur zeilenumbr?che die ich mit enter in der textarea mache werden in der datenbank angezeigt und folglich auch ausgegeben mi nl2br. wie ?bertrage ich nun die zeilenumbr?che korrekt !!in!! die datenbank??
mfg apollo13 -
apollo13 schrieb:
das mit
nl2br haben andere schon geschrieben, das ist nicht mehr das problem
das problem liegt nicht !!!! bei der ausgabe
sondern bei der eingabe:
nur zeilenumbr?che die ich mit enter in der textarea mache werden in der datenbank angezeigt und folglich auch ausgegeben mi nl2br. wie ?bertrage ich nun die zeilenumbr?che korrekt !!in!! die datenbank??
mfg apollo13
H??
INSERT INTO ... 'erste Zeile\nZweite Zeile'
Aber wenn die Eingabe aus einer Textarea kommt, dann sind die eingegebenen Zeielumbr?che doch schon in der $_POST (oder $_GET) -Variable
Woher willst du eigentlich wissen, dass das Problem bei der Eingabe liegt? Wenn es an der Eingabe liegen w?rde, dann w?rde auch nl2br() nicht funktionieren. -
Ciao,
also, wenn ich dich richtig verstanden hab, willst du die Zeilenumbr?che, die du in der Textarea gemacht hast, auch wieder so ausgeben lassen?!
Das k?nntest du z.B. mit dem <br>-tag machen:
$var = chr(13).chr(10);
$text = str_replace($var, "<br>", $text); -
Wenn es an der Eingabe liegen w?rde, dann w?rde auch nl2br() nicht funktionieren.
warum, phpmyadmin zeigt die zeilenumbr?che nicht an, au?er die mit enter "erstellten", mit anzeigen meine ich er macht bei der ansicht der tabelle im text den zeilenumbruch dort wo er higeh?rt aber nur mit den enter-zeilenumbr?chen
folglich wenn die wichtigen zeilenumbr?che fehlen funzt halt nl2br() nur f?r die mit enter erstellten andere gibt es ja nicht
mfg apollo13
edit:
@vorposter das funktioniert einfacher mit nl2br au?erdem was soll er ersetzen wenns einen teil der zeilenumbr?che nicht gibt??
edit:
H??
INSERT INTO ... 'erste Zeile\nZweite Zeile'
Aber wenn die Eingabe aus einer Textarea kommt, dann sind die eingegebenen Zeielumbr?che doch schon in der $_POST (oder $_GET) -Variable
Woher willst du eigentlich wissen, dass das Problem bei der Eingabe liegt? Wenn es an der Eingabe liegen w?rde, dann w?rde auch nl2br() nicht funktionieren.
wenn ich im phpmyadmin als sql statement folgendes eingebe : "insert into test (name) values ('name\nfdf\n')" funktioniert es so wie es soll, warum werden die zeilenumbr?che aus der textarea nicht ?bernommen ist wrap vielleicht nicht valide???
Beitrag ge?ndert am 22.08.2005 20:13 von apollo13 -
ausschnitt
<form action='edit_text.php' method='post' name='Formular'> <textarea name='text'>$row->text</textarea> <input type='submit' value='Änderungen speichern' /> </form>
die verarbeitungsdatei
include("security.php"); include("dbconnect.php"); if ($_SESSION["privilegs"] == "user") { echo "<meta http-equiv=\"refresh\" content=\"0; URL=index.php\">"; }; $einst = $_GET["einst"]; $id = $_GET["id"]; $dienst = $_GET["dienst"]; if ($einst == "del_text") { $abfrage = "DELETE FROM texte where id like '$id'"; mysql_query($abfrage); echo "<meta http-equiv=\"refresh\" content=\"0; URL=service.php?id=$dienst\">"; }
dass m?stte reichen, nein ohne wrap gehts auch nicht
mfg apollo13
danke f?r deine geduld
Beitrag ge?ndert am 22.08.2005 20:38 von apollo13 -
Das HTML-Tag <textarea> hat kein (irgendwie geartetes) wrap-Attribut:
http://de.selfhtml.org/html/formulare/eingabe.htm#bereiche_umbruch
Der "Textumbruch" findet nur in der Browser-Anzeige statt -- egal was du auch immer als wrap-Eigenschaft im HTML-Quelltext notierst.
?bermittelt werden aber sehr wohl Zeilenumbr?che, und zwar die, die der Benutzer durch Dr?cken der Enter-Taste eingibt. Diese Zeilenumbr?che kannst du bei der Anzeige deines Datenbankinhaltes in HTML-Zeilenumbr?che (<br />-Tag) umwandeln -- also nachdem, du den Text der Datenbanktabelle entnommen hast, nicht vorher. Denn HTML-Tags haben in einer Datenbanktabelle eigentlich nichts zu suchen.
MfG
alopex -
danke alopex du bist meine rettung, aber wie mache ich es dann dass am ende eines divs welches mit css width: xx em; festgelegt ist ein umbruch stattfindet???
also so wie hier bei lima!
mfg apollo13
und ich wundere mich warum die zeilenumbr?che nicht eingetragen wurden lol
Beitrag ge?ndert am 22.08.2005 20:49 von apollo13 -
HI jetzt habe ich damit ne problem =)
mein code
echo "
<table>
<tr>
<td>Name:</td>
<td> $name </td>
</tr>
"
der geht noch l?nger, aber das ist egal.
wenn ich das nach echo eingebe also echo "nl2br(table...)" dann wird der nl2br vor jedes variable gezeigt...
wie gebe ich das korrekt ein? -
HI jetzt habe ich damit ne problem =)
mein code
echo "
<table>
<tr>
<td>Name:</td>
<td> $name </td>
</tr>
"
der geht noch l?nger, aber das ist egal.
wenn ich das nach echo eingebe also echo "nl2br(table...)" dann wird der nl2br vor jedes variable gezeigt...
wie gebe ich das korrekt ein?
Schreibs doch so:
$var = nl2br($var);
Dann hast du in der Variable $var gleich "verzeilenumbrucht".
Dann kannst du deine echo-Ausgabe einfach so wie du schon geschrieben hast, stehen lassen.
MfG lagerhaus
-
uffff....
muss ich dann alle variablen was ich habe so um ?ndern?
das dauert ja ewig =)
EDIT: ach schuldigung... brauche ja nur paar ?nder =) die zeilenbr?che haben =)
Beitrag ge?ndert am 6.09.2005 19:12 von bilo -
uffff....
muss ich dann alle variablen was ich habe so um ?ndern?
das dauert ja ewig =)
Liest du die Variablen aus einer Datenbank aus? Dann w?rde ich das vor dem Abspeichern machen.
Sonst muss das f?r jede Variable gemacht werden, soweit ich wei?. Du musst es ja nur einmal pro Variable machen. (Vielleicht am Anfang der Datei u.?.)
MfG lagerhaus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage