Seite 1 von 1

bug: editor $foo wird als variable interpretiert

Verfasst: Do 13. Mai 2004, 11:38
von emergence
ähm ganz was lustiges...
sagen wir mal ich schreibe einen text mit CMS_HTML oder CMS_HTMLHEAD in dem $foo vorkommt. dann wird dieser teil durch nichts ersetzt, wenn die variable nicht definiert ist.
bei $lang steht die ziffer dort etc...

ähm, das ist jetzt schlecht, sollte der text nicht immer als text dortstehen ?
in der con_code finde ich zb bei diesem typ
<? echo "mein $foo text"; ?>
es sollte eigentlich
<? echo "mein \$foo text"; ?>

dortstehen...

und weil ich schon dabei bin
include.con_editcontent.php findet man am ende der datei...

Code: Alles auswählen

        while ( $db->next_record() ) {

            $tmp = preg_match_all("/(".$db->f("type")."\[+\d+\])/", $code, $match);
            $a_[strtolower($db->f("type"))] = $match[0];
            $success = array_walk($a_[strtolower($db->f("type"))], 'extractNumber');

            foreach ($a_[strtolower($db->f("type"))] as $val) {

                eval ($db->f("code"));
                $code  = str_replace("".$db->f("type")."[$val]", $tmp, $code);

            }

        }
nach der foreach schleife sollte man

Code: Alles auswählen

            unset($tmp);
ergänzen...

Verfasst: Do 13. Mai 2004, 15:05
von emergence
das betrifft die con_type
CMS_HTML, CMS_HTMLHEAD, CMS_TEXT, CMS_HEAD

ich hab mir momentan folgendes eingebaut.

$tmp = str_replace("\$",'\\\$',$tmp);

Verfasst: Do 5. Aug 2004, 12:45
von timo
das unset habe ich eingetragen, wo kommt das str_replace hin?

Verfasst: Do 5. Aug 2004, 12:56
von emergence
in den con_type

zb bei CMS_HTML

/**
* CMS_HTML
*/
$tmp = $a_content['CMS_HTML'][$val];
$tmp = urldecode($tmp);
$tmp = AddSlashes(AddSlashes($tmp));
$tmp = str_replace("\\\'","'",$tmp);
->$tmp = str_replace("\$",'\\\$',$tmp);

ich habs einfach am ende der $tmp aufbereitung hingestellt...

Verfasst: Mo 17. Jan 2005, 17:12
von timo
in der 4.4 habe ich die Änderungen gemacht, in der 4.5 waren die Änderungen schon teilweise drin (habe nochmals alles überprüft und Änderungen gemacht).