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

Zeilenumbrüche aus Textarea übernehmen

Status
Für weitere Antworten geschlossen.

Lenchen

Neues Mitglied
Hallo
Ich habe folgendes Problem: Ich habe eine Textarea und möchte die Zeilenumbrüche, die dort eingefügt wurden übernehmen. Ich habe im Internet dazu folgende Funktion gefunden: nl2br() aber irgendwie will das nicht so recht funktionieren :(
Hier mal die relevanten Code-Ausschnitte:
PHP:
$loesungsweg=text_vorbereiten($_POST['loesungsweg']);
$loesungsweg=nl2br($loesungsweg);
und die Funktionen:
PHP:
function bb_code ($text) {
$text=str_replace ('[sub]','<sub>', $text );
$text=str_replace ('[/sub]', '</sub>', $text);
$text=str_replace ('[sup]', '<sup>', $text);
$text=str_replace ('[/sup]', '</sup>', $text);
return $text;
}

function text_vorbereiten ($text) {
$text=mysql_real_escape_string ($text);
$text=strip_tags($text);
$text=bb_code($text);
return $text;
}
 
Werbung:
Werbung:
Er? ;ugl
Tut mir leid, wenn ich mich unklar ausgedrückt habe. Mit der anderen Methode funktioniert es leider auch nicht :( Es bleibt einfach so, wie es ist. Es wird mit und ohne die Funktion mit Zeilenumbrüchen aber ohne <br> in die Datenbank eingetragen und somit ohne zeilenumbrüche ausgegeben. Da ich den Fehler nicht finde und auch die Ersetzung meiner bb-codes klappt verstehe ich nicht, warum das so ist und hatte gehofft, einer von euch sieht im Quellcode den Fehler.
LG Marlene ;)
 
Joa das problem ist ja auch mysql_real_escape_string, geau darum wollte ich keinen workarround anbieten ;)

schade das es kein anderer wusste :p
also mysl_real_escape_string machst du als letztes und zwar genau kurz bevor du den query ausführst also direkt vor mysql_query! und nicht in deiner funktion die hat ja schließlich nichts mit mysql zu tun nur mit dem text ;)
 
Werbung:
AAAH Danke. Schade, es war zu schön, das alles in der Funktion zusammen zufassen, was bei allen Formulareinträgen gemacht werden muss :( . Vielen Dank!
 
nein das währe nicht schön sondern schlecht gewesen ;)

die aufgaben logisch zu verteilen ist wesentlich besser und sorgt dafür das du als entwickler später weniger arbeit hast.

spätestens wenn du (fals du es überhaupt machst :-D) dich mit OOP beschäftigst wirst du verstehen was ich damit meine ;)
 
Naja es funktioniert jetzt auf jeden Fall erstmal (Danke nochmal).
Zum OOP: Hmm naja ich hab es mir zwar angesehen aber verstehe (noch?) nicht den Sinn dahinter und finde es doch recht komplex (kurz: ich bin zu doof dafür;) )
Aber da ich mit php noch nicht so lange arbeite (bin erst durch die Anmeldung in diesem Forum darauf aufmerksam geworden) gibt es auch so (also ohne OOP) noch genug zu lernen.
 
Werbung:
zum ersetzen der BB-Codes empfehle ich dir übrigens die str_replace funktion voll auszuschöpfen also auch ihren 4ten parameter zu nutzen.

PHP:
$text = '...';

prepareText($text);

$text = mysql_real_escape_string($text);

// dein weiterer code
mysql_query("...");

function addBBCode($openBBCodeTag, $closeBBCodeTag, $openHTMLTag, $closeHTMLTag, &$text) {
	$c1 = 0;
	$c2 = 0;

	$text = str_replace($openBBCodeTag , $openHTMLTag , $text, $c1);
	$text = str_replace($closeBBCodeTag, $closeHTMLTag, $text, $c2);

	if($c1 < $c2) {
		$text = str_repeat($openHTMLTag, ($c2 - $c1)) . $text;
	} elseif($c2 < $c1) {
		$text = $text . str_repeat($openHTMLTag, ($c1 - $c2));
	}
}

function addDefaultBBCodes(&$text) {
	addBBCode('[sub]', '[/sub]', '<sub>', '</sub>', $text);
	addBBCode('[sup]', '[/sup]', '<sup>', '</sup>', $text);
}

function prepareText(&$text) {
	$text = strip_tags($text);
	$text = nl2br($text);
	addDefaultBBCode($text);
}
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben