Der folgende Beitrag wurde am 28. 03. 2011, 16:11 Uhr von V3xX veröffentlicht.
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 wieisset($_REQUEST['aendern'])
somit scheitert das Update.
Wie kann ich das beheben?
Besten Dank und freundliche Grüsse
Der folgende Beitrag wurde am 28. 03. 2011, 16:20 Uhr von ChrisB veröffentlicht.
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.
- Lass dir die Query zur Kontrolle ausgeben.
- Frage die Datenbank nach Fehlermeldungen. (mysql_error)
> 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
--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
Der folgende Beitrag wurde am 28. 03. 2011, 16:25 Uhr von EKKi veröffentlicht.
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
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Der folgende Beitrag wurde am 28. 03. 2011, 16:58 Uhr von V3xX veröffentlicht.
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 Funktionmysql_real_escape_string($var);
beheben.
Wo ist den mein Code sosehr fehlerhaft?
Danke und Gruss
V3xX
Der folgende Beitrag wurde am 28. 03. 2011, 17:33 Uhr von EKKi veröffentlicht.
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
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4