Large Logfile / Undefined offset

pixelpur

Mitglied
Hallo in die Runde,

eine Logdatei auf meinem Server wird immer größer und größer nur aufgrund eines Eintrags.

Code:
[Wed Sep 16 09:32:00 2009] [error] [client 82.100.212.73] PHP Notice: Undefined offset: 29 in /srv/www/vhosts/domain.de/httpdocs/pages/includes/dbpages.php on line 23, referer: http://www.domain.de/pages/leistungen.php
[Wed Sep 16 09:32:00 2009] [error] [client 82.100.212.73] PHP Notice: Undefined offset: 29 in /srv/www/vhosts/domain.de/httpdocs/pages/includes/dbpages.php on line 25, referer: http://www.domain.de/pages/leistungen.php

folgendes PHP Script steckt dahinter in der dbpages.php

PHP:
<?php
$dbpagesquery = mysql_query("SELECT * FROM dbpages WHERE dokument='".$pagesid."'");
$dbpagesrow = mysql_fetch_object($dbpagesquery);
$valuetext1='';
if (isset($_GET['valuetext1'])){
	$valuetext1 = $_GET['valuetext1'];
} else {$valuetext1 = '';}

if (isset($_GET['valuetext2'])){
	$valuetext2 = $_GET['valuetext2'];
} else {$valuetext2 = '';}
?>
<div id="content_mitte">
	<div id="einspaltig">
		<h1><?php echo $dbpagesrow->titel;?></h1>
<?php
	$valuetext = $dbpagesrow->text;
	$valuetext = split(" ",$valuetext);
	$valuemass = count($valuetext);
	$valuemass1 = $valuemass/100*51;
	$valuemass2 = $valuemass/100*49;
	$count = 0;
	for($count = 0; ($count < $valuemass1 && $count < count($valuetext))  || (strpos($valuetext[$count],".")==0 && strpos($valuetext[$count],"!")==0 && strpos($valuetext[$count],"?")==0 && strpos($valuetext[$count],"</p>".chr(13).chr(10)."<p>")==0); $count++)
    {
    	$valuetext1.=$valuetext[$count]." ";
    }
	if(strpos($valuetext[$count],"</p>".chr(13).chr(10)."<p>")==0){
		$valuetext1.=$valuetext[$count]." ";
	} else {
		$valuesplit=split("</p>".chr(13).chr(10)."<p>",$valuetext[$count]);
		$valuetext1.=$valuesplit[0]."</p>".chr(13).chr(10);
		$valuetext2.="<p>".$valuesplit[1]." ";
	}
	for($count1 = $count+1; ($count1 < $valuemass1+$valuemass2 && $count1 < count($valuetext)); $count1++)
    {
	   	$valuetext2.=$valuetext[$count1]." ";
    }
?>
		<div class="zweispaltig"><?php echo $valuetext1; ?></div>
		<div id="abstand_spalte"></div>
		<div class="zweispaltig"><?php echo $valuetext2; ?></div>
	</div>
</div>

Habt ihr eine Idee? Fehler scheint ja in der for Schleife zu stecken?
 
Die Seite habe ich auch schon gefunden, muss allerdings offen gestehen, dass ich scheinbar auf dem Schlauch stehe.

$count < $valuemass1 && $count < count($valuetext)) ||

Count steht auf 0 zu Beginn also kleiner und Count ist auch kleiner als der gecountete Text. Somit scheint hier der Fehler nicht zu liegen. Korrigiere mich wenn ich falsch liege.

(strpos($valuetext[$count],".")==0 && strpos($valuetext[$count],"!")==0 && strpos($valuetext[$count],"?")==0 && strpos($valuetext[$count],"</p>".chr(13).chr(10)."<p>")==0); $count++

ODER Umbruch bzw. Spaltenwechseln bei einem dieser Zeichen bei Zeilenumbruch chr(13).chr(10)

Bin ich so blind?
 
Probier in deinem Bedingung mal eine Konjunktion statt einer Disjunktion, schließlich muss $count ja innerhalb des Intervalls bleiben:
PHP:
$count < $valuemass1 && $count < count($valuetext) && strpos($valuetext[$count],".")==0 && strpos($valuetext[$count],"!")==0 && strpos($valuetext[$count],"?")==0 && strpos($valuetext[$count],"</p>".chr(13).chr(10)."<p>")==0
strpos liefert übrigens false falls das Gesuchte nicht vorhanden ist. Der Wert 0 bedeutet, dass es an der ersten Position ist.
 
Zurück