PHP-Code mit Textarea in Datenbank eintragen
V3xX
- php
Guten Tag,
Ich habe das Problem, dass ich eine Seite aufgebaut habe.
Dazu habe ich auch einen Admin-Bereich aufgebaut, in welchem ich die Webseite bearbeiten kann.
Nun hat aber meine Webseite PHP-Code drinn. Und sobald ich eine Seite, die PHP beinhaltet, bearbeiten will, wird das Update der Datenbank fehlschlagen.
Zum Verständnis:
Der Inhalt der Webseite (Code) wird in einem Textarea zur bearbeitung dargestellt. Will ich nun folgenden Content wieder in die Datenbank schreiben, funktioniert es nicht. Bei einer Seite ohne PHP-Code funktioniert es.
mein Datenbank-Update sieht folgendermassen aus:
$array = array("title", "content","entwurf","user","top","subid");
if (isset($_REQUEST['aendern'])){
$id = $_POST['id'];
foreach ($array as $att){
$eintrag = "UPDATE `sites` SET $att = '$_POST[$att]' WHERE `id`=$id";
$eintragen = mysql_query($eintrag) or die ("$att Fehlgeschlagen<br>");
}
}
Meine Vermutung:
Es funktioniert nicht, weil genau in den Seiten ebenfalls ähnliches Vorkommt wie
isset($_REQUEST['aendern'])
somit scheitert das Update.
Wie kann ich das beheben?
Besten Dank und freundliche Grüsse
Hi,
Der Inhalt der Webseite (Code) wird in einem Textarea zur bearbeitung dargestellt. Will ich nun folgenden Content wieder in die Datenbank schreiben, funktioniert es nicht. Bei einer Seite ohne PHP-Code funktioniert es.
Meine Vermutung:
Nicht raten, sondern kontrollieren.
Wie kann ich das beheben?
Ich *vermute* mal (weil deine Problembeschreibung mehr nicht zulässt), dass der missachtete Kontextwechsel das Problem sein könnte.
Mit so wenig Grundlagenwissen überhaupt ausführbaren Code in die Datenbank zu schreiben, wäre grob fahrlässig.
MfG ChrisB
Mahlzeit V3xX,
Meine Vermutung:
Es funktioniert nicht, weil genau in den Seiten ebenfalls ähnliches Vorkommt wie
isset($_REQUEST['aendern'])
somit scheitert das Update.
Ehrlich: irgendwann™ schreibe ich mir tatsächlich nochmal ein Makro zum Einfügen des Links zum Artikel "Kontextwechsel" ...
Wie kann ich das beheben?
Informiere Dich zum o.g. Thema - ausführlich! Verbessere anschließend Deinen mehr als fehlerhaften Code. Gehe nicht über los - ziehe keine 4.000 € ein ... :-)
MfG,
EKKi
Hallo
Informiere Dich zum o.g. Thema - ausführlich! Verbessere anschließend Deinen mehr als fehlerhaften Code. Gehe nicht über los - ziehe keine 4.000 € ein ... :-)
Besten Dank für die rasche Antwort.
Ich hab mich über obiges Thema informiert, und weiss nun ein Bisschen mehr (Den Teil mit den Backslashes lernt man relativ früh, das mit der Datenbank war mir aber noch neu).
Somit konnte ich also den Fehler mit der Funktion
mysql_real_escape_string($var);
beheben.
Wo ist den mein Code sosehr fehlerhaft?
Danke und Gruss
V3xX
Mahlzeit V3xX,
Somit konnte ich also den Fehler mit der Funktion
mysql_real_escape_string($var);
beheben.
Zur verbesserten Leserlichkeit Deines Codes empfehle ich ferner sprintf().
Wo ist den mein Code sosehr fehlerhaft?
Neben dem genannten Problem z.B. dort, wo eigentlich eine Fehlerbehandlung erfolgen sollte.
MfG,
EKKi