[PHP] Nach Eingabeüberprüfung HTML unbrauchbar

AMD-Hammer

Grand Admiral Special
Mitglied seit
05.10.2003
Beiträge
2.760
Renomée
123
Standort
Bornheim (Rheinland)
Hallo Leute...

ich hab mal wieder ein kleines Problem mit PHP. Ich habe auf einer Seiten den TinyMCE Editor (http://sourceforge.net/projects/tinymce) installiert! Er läuft auf dieser Seite in zwei instanzen untereinander!
Wenn ich nun Text in den Editor eingebe und das Formular abschicke kann ich die Variablen ohne weiteres in die Datenbank schreiben und auch wieder auslesen! Mit allen Bildern, Links, etc.
Allerdings gibt es auf dieser Seite Pflichtfelder (so ziemlich alle ;) ) und dies will ich natürlich abfragen! Deswegen habe ich eine Abfrage eingebaut, die zuerst über die GET-Variable "verify" aufgerufen wird.
PHP:
<?php
		if (isset($_GET['verify'])) {
				if ($_POST['id'] == "" ) { $error = "1";};
				if ($_POST['title'] == "" ) { $error = "1";};
				if ($_POST['byline'] == "" ) { $error = "1";};
				if ($_POST['content'] == "" ) { $error = "1";};
				if ($_POST['category'] == "none" ) { $error = "1";};
				if ($_POST['type'] == "none" ) { $error = "1";};
				if ($_POST['topnews'] == "" ) { $error = "1";};
				if ($_POST['author'] == "" ) { $error = "1";};
				
				if ($error != "1") {  
					?>
					<form action="index.php?site=dynamic&option=rewrite" method="post" name="rewritenow">
					<input type='hidden' name='id' value='<?php echo $_POST["id"]; ?>'>
					<input type='hidden' name='verify_released' value='<?php echo $_POST["verify_released"]; ?>'> 
					<input type='hidden' name='title' value='<?php echo $_POST["title"]; ?>'>
					<input type='hidden' name='byline' value='<?php echo $_POST["byline"]; ?>'>
					<input type='hidden' name='content' value='<?php echo $_POST["content"]; ?>'>
					<input type='hidden' name='type' value='<?php echo $_POST["type"]; ?>'>
					<input type='hidden' name='topnews' value='<?php echo $_POST["topnews"]; ?>'>
					<input type='hidden' name='author' value='<?php echo $_POST["author"]; ?>'>
					<input type='hidden' name='public' value='<?php echo $_POST["public"]; ?>'>
					<input type='hidden' name='category' value='<?php echo $_POST["category"]; ?>'>
					<script language="javascript" type="text/javascript">	
					window.location= "javascript:document.rewritenow.submit();";
					</script>
					</form>
					<?php
					exit();
				} else {
					?>
					<script language="javascript" type="text/javascript">
					alert('<?php echo $LANG_ERROR_INPUT_FIELDS; ?>');
					</script>
					<?php
					$dynamic_content_title = $_POST['title'];
					$dynamic_content_byline = $_POST['byline'];
					$dynamic_content_content = $_POST['content'];
					$dynamic_content_created_by = $_POST['author'];
					$dynamic_content_type = $_POST['type']; 
					$dynamic_content_category = $_POST['category']; 
					$dynamic_content_topnews = $_POST['topnews'];
					$dynamic_content_released = $_POST['public'];
				}
		}
?>
Nach dieser Abfrage gibt er entweder die Seite wieder mit den eingetragenen Werten aus (wenn eine eingabe fehlt) oder er sendet ein neues Formular ab, welches dann den Wert in die Datenbank eintragen sollen. Und genau ab dort beginnt mein Problem, denn sobald ein Bild oder ein Link im Text steht beendet er den String und trägt somit den Wert nur bis zum Bild ein! Im Quelltext der Ausgabe des eingegeben Textes steht dann folgendes:
PHP:
<p><img src="%5C%22../images/milestone2.0.gif%5C%22" alt=""></p>
Wenn ich das richtig sehe sind die "%5C" und die "%22" dort fehl am Platz! Ich habe allerdings schon probiert diese Werte mit
PHP:
str_replace('%5C%22', "'", $content);
herauszufiltern. Wie ihr euch denken könnt ohne erfolg!

Nun meine Frage an euch: Wo ist mein Fehler? Hab ich in dem "Verify" Teil was falsch gemacht!? Wie kann ich das rausfiltern?
 
was die zeichen genau sind weiß ich grad leider nicht, aber es sind aufjedenfall sonderzeichen die als html-code übergeben werden...
sprich als erstes mal gucken was denn genau an dieser stelle auftaucht bzw. was diese zeichen bedeuteten.
ein &nbsp; ist ja z.b. ein leerzeichen usw.
d.h. man würde ja nicht &nbsp; fitlern sondern " "
 
[³dgamer];2905905 schrieb:
was die zeichen genau sind weiß ich grad leider nicht, aber es sind aufjedenfall sonderzeichen die als html-code übergeben werden...
sprich als erstes mal gucken was denn genau an dieser stelle auftaucht bzw. was diese zeichen bedeuteten.
ein &nbsp; ist ja z.b. ein leerzeichen usw.
d.h. man würde ja nicht &nbsp; fitlern sondern " "
Das %5C is ein \ und das %22 ist ein "


/EDIT

Problem geloest! Hab einfach ein Formular rausgenommen und dann ging es :)

Danke an alle fuer ihre hilfe
 
Zurück
Oben Unten