Klaus Mock: Daten in Html ausgabe auf mehrere Seiten verteilen.

Beitrag lesen

Hallo,

%Parameter = split(/=/, $ENV{'QUERY_STRING'});
$Index = $Parameter{'Index'};
if ($Index eq '')
{
   $Index = 0;
}

Ich denke doch, daß sich inzwischen das Modul CGI für die behandlung der CGI-Parameter durchgesetzt haben sollte.
Das was Du hier vorschlägst ist absolut nicht krisensicher, sondern funktioniert nur richtig , wenn es maximal einen Parameter gibt.

Scheint ja nur ne Kleinigkeit noch zu fehlen.

eigentlich ja, sonst finde ich nichts, was das Problem verursachen könnte

Naja,

foreach $line (@lines)
{
@fields=split(/\s*|\s*/,$line);
@lines = splice(@lines, $Index, $Index+81);
$thumb=$fields[5];
print <<HTMLF;
<blablablabla>
HTMLF

$indexBack=$Index-80;
if ($Index < 0) {$Index=0}
print "<a href="http://www.pbtoys.de/cgi-bin/newitemsneu.cgi?Index=$indexBack">80 zurück</a>";
}

Hier liegt der Fehler wohl darin, daß das splice innerhalb der Arrayabarbeitung verändert wird. Ich denke, daß da recht bal ein Array mit leerem Inhalt die Folge ist.
Richtiger wäre:

#schmeissen wir mal alles weg was wir nicht brauchen
@lines = splice(@lines, $Index, $Index+81);

foreach $line (@lines)
{
#hier wird die Ausgabe der Zeileninhalte durchgeführt
}

Abgesehen davon vermisse ich schmerzlich 'use strict' bzw. ein my da oder dort (bzw. immer wenn eine Variable neu eingeführt wird).

Grüße
  Klaus