[PHP/MySQL] Probmlem bei der Ausgabe

Drogenfahnder

Well-known member
ID: 167222
L
28 April 2006
333
6
Hallo,
habe folgendes Problem
ich lese erst daten aus der db aus
PHP:
$data = $db->query_first("SELECT article_id, title, description FROM ".TABLE_PREFIX."article WHERE article_id=".$_GET['article_id']);
bearbeite die Daten und gebe Sie dann aus:
PHP:
	$data['description'] = nl2br($data['description']);
	$smarty->assign("data", $data);
Jedoch werden die \n und \r nicht umgewandelt
wieso was ist falsch?

Gruß Drogenfahnder
 
Es tut mir leid aber meine Glaskugel ist kaputt...
Welchen Datensatz bekommst du aus der Datenbank und was ist die (falsche) Ausgabe :roll:
 
Halloa,

zunächst wandelt nl2br die \n etc. nicht um, sondern fügt br's hinzu, dann vermute ich, dass deine Daten in der DB aus einem Formular stammen. Hier kann es sein, dass über magic_quotes (oder so ähnlich) in der php.ini alle Daten maskiert wurden, so dass \n mit nl2br nicht mehr erkannt wird.

Mal so blind - ohne Glaskugel - in die Luft gedacht.
 
also
die DAten werden über ein Textfeld also Formlar in die db übertragen.
Ich schreibe die Daten so rein:
HTML:
hallo,
wie geht es dir?

mfg Drogenfahnder
in der db werden diese ohne bearbeitung in einem Textfeld gespeichert. Jedoch sieht das so aus
HTML:
hallo,\r\nwie geht es dir?\r\n\r\nmfg Drogenfahnder
leider werden die auch so ausgegebn.

Möchte die Daten aber wieder so ausgeben wie ich diese eingespeichert habe also mit Absätzen.

wenn ich jedoch aber
PHP:
$data['description'] = "hallo,\r\nwie geht es dir?\r\n\r\nmfg Drogenfahnder";
nach der db abfrage eingebe wird es richtig mit Absätzen ausgegeben

mfg Drogenfahnder
 
in der db werden diese ohne bearbeitung in einem Textfeld gespeichert. Jedoch sieht das so aus
HTML:
hallo,\r\nwie geht es dir?\r\n\r\nmfg Drogenfahnder
leider werden die auch so ausgegebn.

du hast nicht reinzufällig die Daten, die in die Datenbank gespiechert werden sollen, durch mysql_real_escape_string() oder addslashes() gejagt?
 
Wie oben schon gesagt, dass sieht wie magic_quotes aus, zu testen bzw. rauszunehmen über:

if(get_magic_quotes_gpc())
{
$_POST['feldname_des_textes_vor_speichern'] =
stripslashes($_POST['feldname_des_textes_vor_speichern']);
}
 
@tleilax also des kommt raus:
HTML:
string(51) "hallo,\r\nwie geht es dir?\r\n\r\nmfg Drogenfahnder"

@ice-breaker Nein die Daten werden direkt mit insert in die db gepseichert.

@leller ja es ist an
 
Zuletzt bearbeitet:
Dann sollte sich damit dein Problem lösen, wenn du vor dem speichern der Daten diese mit stripslashes bearbeitest bzw. vor der Anzeige/ vor nl2br.