fehler in function.mod.php

Gesperrt
martin2002
Beiträge: 41
Registriert: Fr 31. Okt 2003, 02:16
Wohnort: Potsdam
Kontaktdaten:

fehler in function.mod.php

Beitrag von martin2002 »

ich habe da was entdeckt (ich weiß zwar nicht, ob das schon mal jemand angemerkt hat und war jetzt auch zu faul zum suchen :wink: )

aber:

in function modTestModule steht folgende zeile:

Code: Alles auswählen

$code = str_replace(']]',']', $code);
das führt dazu, dass eine codezeile wie:

Code: Alles auswählen

$test = $array_a[$array_b["key"]];
in folgendes umgewandelt wird:

Code: Alles auswählen

$test = $array_a[$array_b["key"];
dadurch wird das modul fälschlicherweise als fehlerhaft markiert.

diese ersetzungen scheinen wohl im zusammenhang mit den CMS_VALUES zu stehen... ich glaube hierfür wäre ein regulärer ausdruck besser. einfach um diesen fehler auszuschließen, auch wenn das nicht so tragisch ist.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

fehler wurde bereits im CVS_HEAD und 4.5.2alpha behoben
siehe
-> http://www.contenido.de/forum/viewtopic ... 1660#11660
*** make your own tools (wishlist :: thx)
martin2002
Beiträge: 41
Registriert: Fr 31. Okt 2003, 02:16
Wohnort: Potsdam
Kontaktdaten:

Beitrag von martin2002 »

alles klar...
dann hab ich nichts gesagt :cool:

(da will man schon mal was beitragen und dann ist man doch wieder nicht auf dem neuesten stand :wink: )

als denn...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

beitragen ist gerne gesehen ;-)
*** make your own tools (wishlist :: thx)
martin2002
Beiträge: 41
Registriert: Fr 31. Okt 2003, 02:16
Wohnort: Potsdam
Kontaktdaten:

Beitrag von martin2002 »

noch was... der folgende code geht nicht:

Code: Alles auswählen

<?php

$db->query("SELECT * FROM lg_subjects");
while ( ($subject = @mysql_fetch_array($db->Query_ID, MYSQL_ASSOC) ) != false ) {
	$subjects[$subject["SID"] ] = $subject;
}


$db->query('SELECT * FROM lg_teachers ORDER BY TNAME ASC');

if (@mysql_num_rows($db->Query_ID)==0) {
   echo '<table border="0" cellspacing="2" cellpadding="0">
        <tr><td align="right" style="color: #516885; font-size: 12px;" width="150px"><i>Servermeldung</i>&nbsp;|</td>
            <td align="left" class="fontCMS_VALUE[0]" style="border-bottom: 1px solid #B5C2D3;" width="425px">Keine Lehrer in der Datenbank</td>
        </tr>
        <tr><td width="150px">&nbsp;</td>
            <td width="425px"><img src="images/art_read_bar.png"><img src="images/art_read_btn_ext.png" border="0"></td>
        </tr>
    </table><br><br>';
} else {
   while ($db->next_record()) {
echo '<table border="0" cellspacing="2" cellpadding="0">
        <tr><td align="right" style="color: #516885; font-size: 12px;" width="150px">|</td>
            <td align="left" class="fontCMS_VALUE[0]" style="border-bottom: 1px solid #B5C2D3;" width="425px">'.$db->f("TNAME").' ('.$db->f("TNICK").')</td>
        </tr>
        <tr><td width="150px"><img src="'.($db->f('PICTURE') ? $db->f('PICTURE') : 'images/nopic.gif').'" class="imgclass_artread" width="150px" height="100px"></td>
            <td valign="top" class="fontCMS_VALUE[1]" width="425px"><u>E-Mail:</u> <a href="mail://'.$db->f('EMAIL').'">'.$db->f('EMAIL').'</a><br><u>Fächer:</u><br>';
$tsubs = explode("|", $db->f("SUBJECTS"));
if (!empty($db->f("SUBJECTS") ) ) {
   for ($n = 0; $n < count($tsubs); $n++ ) {
      $sub = $subjects[$tsubs[$n] ];
      echo $sub["SNAME"]." (".$sub["SNICK"].")";
   }
}
echo '            </td>
        </tr>
        <tr><td width="150px">&nbsp;</td>
            <td width="425px"><img src="images/art_read_bar.png"><img src="images/art_read_btn_ext.png" border="0"></td>
        </tr>
    </table><br><br>';      
   }
}

?>
ich hatte festgestellt, dass er

Code: Alles auswählen

href="mail://'.$db->f("EMAIL").'">'.$db->f("EMAIL").'</a><br><u>Fächer:</u><br>';
in

Code: Alles auswählen

href="mail://'.$db->f("EMAIL).'">'.$db->f("EMAIL").'</a><br><u>Fächer:</u><br>';
nach dem verarbeiten im cms umwandelt, aber immer nur beim ersten auftreten von dem zugriff auf die results... beim zweiten, darauf folgenden zugriff bleibt die syntax so...
deshalb habe ich die " in ' geändert, was zwar dazu führte, dass die syntax an der betreffenden stelle stimmt... aber der code wohl immer noch fehler hat.

ich hab mir den echt mehrfach angeschaut und weiß nicht warum das so ist... ist da vielleicht noch ein bugfix nötig, von dem ich nichts weiß :wink:
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

guter punkt

führt bei mir dazu das ich folgende meldung erhalte

Fatal error: Can't use method return value in write context in e:\contenido\contenido\includes\functions.mod.php(128) : eval()'d code on line 30

ca. 10 sekunden darauf stürzt mein apache server ab...
auch nicht schlecht...
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

hat aber nichts mit functions.mod.php zu tun...

fehler ist reproduzierbar mittels

Code: Alles auswählen

<?php

if (empty($db->f("SUBJECTS"))) {

}

?>
-> http://at.php.net/manual/de/function.empty.php

hingegen folgendes funktioniert

Code: Alles auswählen

<?php

$x = $db->f("SUBJECTS");
if (empty($x)) {

}

?>
*** make your own tools (wishlist :: thx)
martin2002
Beiträge: 41
Registriert: Fr 31. Okt 2003, 02:16
Wohnort: Potsdam
Kontaktdaten:

Beitrag von martin2002 »

coole aktion (vom server)... 8)
wat hab ich da wieder programmiert :wink:

danke... ich versuchs gleich mal
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

geschlossen...
*** make your own tools (wishlist :: thx)
Gesperrt