Division by zero

Gesperrt
preusss
Beiträge: 24
Registriert: So 4. Apr 2004, 20:32
Wohnort: Ladenburg bei Heidelberg
Kontaktdaten:

Division by zero

Beitrag von preusss »

Hallo Listige,

im Contenido Error Log erscheint bei mir mit schöner Regelmäßigkeit folgende Fehlermeldung, die ich nicht zuordnen kann:

Code: Alles auswählen

[29-Jul-2004 10:10:19] PHP Warning:  Division by zero in /homepages/19/d82338661/htdocs/cms/front_content.php(563) : eval()'d code on line 342
[29-Jul-2004 10:10:19] PHP Warning:  Division by zero in /homepages/19/d82338661/htdocs/cms/front_content.php(563) : eval()'d code on line 407
[29-Jul-2004 10:10:19] PHP Warning:  Division by zero in /homepages/19/d82338661/htdocs/cms/front_content.php(563) : eval()'d code on line 472
Was bedeutet dieses und was muß ich ändern, damit es abgestellt wird. Ansonsten klappt die Seite (contenido 4.4.4) sehr gut; einige andere Probleme habe ich noch, die aber m.E. nicht mit obiger Meldung zu tun haben.

Wäre froh, wenn ihr mir weiterhelfen könntet. Vielleicht muß ich die Meldung einfach nur ignorieren?

----
Serverbetriebssystem: Apache/1.3.29 (Unix)
PHP-Version: 4.3.8
MySQL Version: 4.0.20-standard-log

[preusss]
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

einer deiner module verursacht das...
da es kein syntax fehler ist wird dir auch kein fehler beim modul angezeigt...

irgendwo in einem deiner modul ergibt sich lt. warn meldung eine division durch 0

möglichkeiten:

du kannst nach einander jedes modul alleine testen...
dann kannst du bestenfalls mal eingrenzen welches modul den fehler verursacht...

andere möglichkeit -> in con_code findet sich bei zeile 472 die zeile die das problem verursacht...
da du aber nicht weisst welche seite das problem verursacht müsstest du dir alle einträge bei value durchsehen...

andere möglichkeit...
contenido/includes/config.php
den eintrag

Code: Alles auswählen

/* Don't display errors */
ini_set("display_errors",false);
auf

Code: Alles auswählen

/* Don't display errors */
ini_set("display_errors",true);
ändern...
dann sollte die fehlermeldung in dem bereich aufscheinen in dem der fehler auftritt, wenn du dir die seite ansiehst...
*** make your own tools (wishlist :: thx)
preusss
Beiträge: 24
Registriert: So 4. Apr 2004, 20:32
Wohnort: Ladenburg bei Heidelberg
Kontaktdaten:

Beitrag von preusss »

Hallo emergence,

Vielen Dank für die schnelle Antwort. Ich habe den Schalter auf 'true' gesetzt und nun kommen direkt auf der Seite die Fehlermeldungen:

Ich sehe den Fehler auf einer Seite, in der ich fünf mal das Modul 'Bild (x,y)' eingebunden habe - also jenes Modul, wo die Vorschau 'on the fly' erstellt werden kann; ein tolles Modul...
Ich habe mir sechs verschiedene Instanzen von diesem einen Modul erzeugt, die ich jetzt auf einer Seite eingebaut habe. Anscheinend habe ich da irgendwo einen Fehler, wenn ich (statt einem tatsächlichen Biuld) eine leere Instanz belasse.

Der Fehler auf der Seite lautet:

Code: Alles auswählen

Warning: getimagesize(65): failed to open stream: No such file or directory in /homepages/19/d82338661/htdocs/cms/front_content.php(563) : eval()'d code on line 318
Er kann m.E. den Pfad zum Bild oder die Größe nicht korrekt auslesen. Oder liege ich da falsch?

Habe das Modul für Bild 5 hier mal angehängt; vielleicht entdeckst du den Fehler, den ich da eingebacken habe:

Code: Alles auswählen

Name: Bild (x,y) 05
------------
Beschreibung:
Die Größe des Vorschau-Bildes kann angegeben werden
------------
Eingabe:
echo "<table><tr> 
        <td> 
         Gewünschte Bildgröße [X] x [Y] 
       </td> 
            <td> 
          <input size=3 maxlength=3 type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\">x<br> 
          <input size=3 maxlength=3 type=\"text\" name=\"CMS_VAR[10]\" value=\"CMS_VALUE[10]\">y 
</td> 
  </tr></table>";
------------
Ausgabe:
<?php 

$Xt  = "CMS_VALUE[9]"; // hochgezählt von Modul Nr. 1
$Xt = intval($Xt); // wir wollen nur ganzzahlige Dimensionen 
$Yt  = "CMS_VALUE[10]"; // hochgezählt von Modul Nr. 1
$Yt = intval($Yt); // wir wollen nur ganzzahlige Dimensionen 
$bildpfad = "CMS_IMG[5]"; // hochgezählt von Modul Nr. 1

if ($bildpfad!=""){ 
$bildpfad = str_replace ('http://www.wurde_angepasst.de/cms/' , '', $bildpfad ); //Säubern des Pfades, hier den eigenen cms root pfad angeben! (Ist da der volle Pfad, also './cms/upload/' gemeint oder reicht es, es bis ins ./cms/ zu verzweigen?
$size5 = getimagesize($bildpfad); //Auslesen der Orginalbildgröße und speichern in Array; wurde von Modul Nr. 1 an hochgezählt 
} 

$Xs = $size5[0]; 
$Ys = $size5[1]; 

if ($Xt > 0 && $Yt > 0){ // ist die Eingabe der neuen Dimension leer, null oder negativ? 

if ($Xs > Ys){ //Querformat? 
   $facx = ($Xt/$Xs); 
   $Xtn = ($Xs*$facx); 
   $Ytn = ($Ys*$facx); 

      if ($Ytn > $Yt){ 
         $facy = ($Yt/$Ys); 
         $Xtn = ($Xs*$facy); 
         $Ytn = ($Ys*$facy); 
      } 
      else{ 
         $Xtn = $Xtn; 
         $Ytn = $Ytn; 
      } 
} 
else{ //Hochformat! 
   $facy = ($Yt/$Ys); 
   $Xtn = ($Xs*$facy); 
   $Ytn = ($Ys*$facy); 

      if ($Xtn > $Xt){ 
         $facx = ($Xt/$Xs); 
         $Xtn = ($Xs*$facx); 
         $Ytn = ($Ys*$facx); 
      } 
      else{ 
         $Xtn = $Xtn; 
         $Ytn = $Ytn; 
      }          
} 

$xneu = intval($Xtn); // auch die berechneten Dimensionen sollen ganzzahlig sein 
$yneu = intval($Ytn); // auch die berechneten Dimensionen sollen ganzzahlig sein 

echo "<a href=\"CMS_LINK[5]\" target=\"CMS_LINKTARGET[5]\"><img src=\"CMS_IMG[5]\" border=\"0\" width=\"$xneu\" height=\"$yneu\"></a>"; 

echo "<br>"; 
echo "CMS_IMGDESCR[5]"; 
echo "CMS_LINKDESCR[5]"; 
} 
else{ 
echo "Sie haben einen Wert kleiner gleich 0 oder aber keinen Wert für die neuen Dimensionen eingetragen!"; //Wenn Eingabe ungültig 
} 
?>
------------
[preusss]
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

preusss hat geschrieben:...wenn ich (statt einem tatsächlichen Biuld) eine leere Instanz belasse.

Der Fehler auf der Seite lautet:

Code: Alles auswählen

Warning: getimagesize(65): failed to open stream: No such file or directory in /homepages/19/d82338661/htdocs/cms/front_content.php(563) : eval()'d code on line 318
Er kann m.E. den Pfad zum Bild oder die Größe nicht korrekt auslesen. Oder liege ich da falsch?
ganz einfach -> wenn das bild nicht geladen werden kann! wird auch die größe nicht ausgelesen, deshalb dann auch der fehler mit division durch 0

es wird bei dir nur kontrolliert ob eine größe in der konfiguration definiert wurde, nicht jedoch ob das laden des bildes erfolgreich war.

du müsstest dies logik noch ins modul bringen... dann wären deine fehlermeldungen weg...
*** make your own tools (wishlist :: thx)
preusss
Beiträge: 24
Registriert: So 4. Apr 2004, 20:32
Wohnort: Ladenburg bei Heidelberg
Kontaktdaten:

Hab's mir fast gedacht

Beitrag von preusss »

es wird bei dir nur kontrolliert ob eine größe in der konfiguration definiert wurde, nicht jedoch ob das laden des bildes erfolgreich war.
Soweit das Modul, welches ich hier eingebaut habe. Ich weiß auch nicht mehr, wo ich das Original her hatte. Es ist ein feines Modul und es macht eigentlich alles, was ich damit machen möchte.
du müsstest dies logik noch ins modul bringen... dann wären deine fehlermeldungen weg...
Da muß ich wahrscheinlich passen. Ich bin PHP-Novize. Kannst du mir bitte einen Wink mit dem berühmten Zaunpfahl geben, wo ich das einpassen muß? Besten Dank.

[preusss]
preusss
Beiträge: 24
Registriert: So 4. Apr 2004, 20:32
Wohnort: Ladenburg bei Heidelberg
Kontaktdaten:

Lösung?

Beitrag von preusss »

Ich habe eine (kleine) Lösung gefunden: Ich plaziere statt einem (normalen) Bild einfach ein 1 x 1 Pixel GIF (farblos) in das vorgesehene Feld. Das tut auch und produziert keine Fehler mehr.

@emergence
Vielen Dank für deine Zeilen. Wenn ich etwas mehr Zeit habe, werde ich das Modul umschreiben/erweitern und hier anbieten

[preusss]
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

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