Seite 1 von 2

Parse error in include.con_editcontent.php(650)

Verfasst: Mi 30. Nov 2005, 14:57
von phpchris
Hallo,

ich habe ein Problem.
Einer meiner Kunden hat in seinem Backend einen unheimlich langen text geschrieben. Dieser enthält backslashes, Anführungszeichen usw.

Nun bekomme ich im Backend einen parse error, wenn ich den Artikel editieren möchte.

Ich bin mir nicht sicher, ob das nicht ein Bug ist.
Wenn sich einer der Devs das ansehen möchte, gebe ichgerne Daten per PM raus...

Verfasst: Mi 30. Nov 2005, 16:45
von phpchris
Es scheint sich wirklich um einen Bug zu handeln.

Dieser Satz hier hat den Fehler verursacht:
\"Es kommt der Abend, da werden wir im Bikini essen.\"
Da habe ich die Backslashes ersetzt und der Fehler war weg.

Kann es sein, dass da bei der Eingabe mehr möglich ist als erlaubt?

In der tabelle con_content standen Sie zwar kodiert (%5C) aber das hat den wysiwyg-Editor doch ins Husten gebracht...

Verfasst: Do 1. Dez 2005, 09:09
von phpchris
Interessiert das keinen?

Verfasst: Do 1. Dez 2005, 09:21
von jost
Kann ich nicht nachvollziehen, so etwas ist mir noch nie passiert, habe es eben auch mal gezielt getestet - tutti bene. Hm. Vielleicht war dem Editor dein Satz zu verrucht?

Verfasst: Do 1. Dez 2005, 11:36
von phpchris
Ich wollte eigentlich darauf hinaus, dass der Inhalt evtl. nicht restriktiv genug geparst wurde bevor er in die con_code gewandert ist.

Wäre evtl. ein Bug...

Ich auch

Verfasst: Do 1. Dez 2005, 15:07
von apicalart
Also ich habe den selben Fehler, weiss aber auch nicht wo was falsch ist. Bei mir könnte es ein Navigationspunkt gewesen sein. Rest- & Sonderposten statt Rest- & Sonderposten

Also ich habe meinen Fehler gefunden

Verfasst: Do 1. Dez 2005, 15:29
von apicalart
Ich hatte zusätzlich noch einen weiteren Parse Error mit front_content.php(770).

Bei mir war folgendes : Ich habe meine Module kontrolliert und siehe da in der Hauptnavigation war der Wurm drin. Er hat mir einfach das Modul in der Ausgabe zerschossen.

Also bei der Meldung unbedingt die Module kontrollieren. Wenn da eine rote Lampe leuchtet, Bingo

Verfasst: Mi 7. Dez 2005, 10:28
von phpchris
Also jetzt kann ich den Bug reproduzieren, weil ich genau weiss, was der Kunde gemacht hat.
Er hat einfach einen Text übers insite-editing in ein CMS_HTML-Feld eingefügt und gespeichert...

Nun eine Frage an die Entwickler, wo kann ich den Code nochmal parsen, bevor er endgültig in der DB landet?

Verfasst: Mi 7. Dez 2005, 10:36
von timo
was für einen Text hat er denn eingegeben?

Verfasst: Mi 7. Dez 2005, 10:37
von emergence
ja

functions.con.php

function conSaveContentEntry

gleich nach

Code: Alles auswählen

$value = stripslashes($value);
$value enthält den code der dann in der db landet...

Verfasst: Mi 7. Dez 2005, 11:13
von phpchris
timo hat geschrieben:was für einen Text hat er denn eingegeben?
Reproduzieren konnte ich das, wenn ich folgenden Text einfach ins insite-editing kopiere und auf speichern klicke:

Code: Alles auswählen

"Test"
@emergence: Danke, ich schau mal rein und poste meinen Work-around hier.

Verfasst: Mi 7. Dez 2005, 11:33
von phpchris
In Zeile 578:

Code: Alles auswählen

    $value = str_replace('\\', "", $value);
Das ersetzt den Backslash...

Verfasst: Mi 7. Dez 2005, 11:35
von Dodger77
phpchris hat geschrieben:In Zeile 578:

Code: Alles auswählen

    $value = str_replace('\\', "", $value);
Das ersetzt den Backslash...
Ersetzt das nicht auch jeden gewollten Backslash?

Verfasst: Mi 7. Dez 2005, 11:36
von emergence
Dodger77 hat geschrieben:Ersetzt das nicht auch jeden gewollten Backslash?
ja tut es... keine gute lösung

Verfasst: Mi 7. Dez 2005, 11:36
von phpchris
Ja...