Ausgabe wird abgebrochen

Sprint

Erfahrenes Mitglied
Hallo zusammen,

ein Script von unserer uralten Seite fing plötzlich an zu spinnen. Und zwar wird nach einer ganz normalen HTML Zeile bei der Ausgabe von ein paar Werten abgebrochen. Das hier ist der fragliche Bereich:

PHP:
$sql="select count(pid) from pruefung where status = 10 and basispruefung = 0;";
$erg=mysql_query($sql,$verbindung);
if (!$erg)
    exit ('<font color="red">Datenbankfehler: '.__FILE__.' Zeile '.__LINE__);
$dummy = mysql_fetch_array($erg);
$offpruef = $dummy[0];

$sql="select count(n.pruefnr) from nachprf n, pruefung p where n.bub = 1 and n.pruefnr = p.pid and p.bubstatus = 10;";
$erg=mysql_query($sql,$verbindung);
if (!$erg)
    exit ('<font color="red">Datenbankfehler: '.__FILE__.' Zeile '.__LINE__);
$dummy = mysql_fetch_array($erg);
$offbubpruef = $dummy[0];
HTML:
<td align="left" valign="bottom" width="45" height="46"><img src="images/pruefsm.jpg" alt="" border="0" width="45" height="46"><br>
    <?php echo $offpruef.' / '.$offnppruef; ?>
</td>
<td align="left" valign="bottom" width="45" height="46"><img src="images/bubpruefsm.jpg" alt="" border="0" width="45" height="46"><br>
    <?php echo $offbubpruef.' / '.$offnpbubpruef; ?>
</td>

<td align="left" valign="bottom" height="75"><img src="images/uidpruefsm.jpg" alt="" border="0" width="45" height="46"><br>
    <?php echo $offuidpruef.' / '.$offuidpruef_alt; ?></td>

Am Anfang der Seite werden die verschiedenen Werte gezählt und ein paar hundert Zeilen später ausgegeben. In der Zwischenzeit werden die verschiedenen Variablen nicht angefaßt.

Und zwar wird die Ausgabe nach der ersten Zeile abgebrochen, wenn in den beiden Werten eine 0 steht. Lösche ich die PHP Zeile raus, wird bis zur 4. Zeile ausgegeben. Dann ist an der nächsten PHP Zeile Schluß. Nehme ich die auch raus, wird der komplette Rest der Seite ausgegeben. Daß nach den beiden Teilen noch ein dritter, identisch aufgebauter Teil kommt, interessiert gar nicht.
Wenn ich jetzt in der zweiten Zeile anstelle des PHP Teils irgendwas reinschreibe, z.B. "x / y", wird die komplette Seite ausgegeben, d.h. daß auch die 5. Zeile, an der abgebrochen wird wenn Zeile 2 fehlt, korrekt ausgegeben wird.

Wenn dann in der Variablen $offpruef aber etwas anderes als 0 steht, wird alles komplett korrekt ausgegeben. Auch wenn sich dieser Wert später wieder auf 0 ändert, tritt der Fehler nicht wieder auf. Bis zum nächsten Tag. Dann kann in in $offpruef stehen was will, es wird abgebrochen. Erst wenn ein Wert größer 0 gezählt wird, der am selben Tag erzeugt wurde, läuft die ganze Seite korrekt durch. Nur wird das Datum ja überhaupt nicht berücksichtigt!

Mache ich das ganze aber auf unserer Testumgebung, tritt dieser Fehler überhaupt nicht auf! Und es ist auch nicht so, daß das schon immer so wäre. Die Seite ist bereits Jahre alt und hat bis jetzt wunderbar funktioniert.

Ich habe die Datei auch schon mit einem Hex Editor untersucht um zu sehen, ob da irgendwo ein Zeichen wäre, das den Server durcheinanderbringt, aber da ist nichts. Da die Zahlen aber eigentlich eh niemanden interessieren, hab ich sie erst einmal rausgenommen und jetzt funktioniert wieder alles.

Ich erwarte jetzt gar nicht, daß jemand die Lösung des Problems findet, da das ganze ja völlig irrational und absolut nicht nachzuvollziehen ist, aber vielleicht hat ja jemand eine Idee, was es sein könnte. Ich bin fast schon so weit, das irgendwelchen Gremlins oder Trollen in die Schuhe zu schieben, wenn ich daran glauben würde.
 

m.scatello

Erfahrenes Mitglied
Dieses Script ist total veraltet und funktioniert nur mit PHP 5.x, mit PHP 7.x kann das nicht mehr funktionieren. Die mysql_* Funktionen sind in PHP 7.x entfernt worden, stelle daher auf die mysqli Funktionen oder PDO um.