Hallo und guten Morgen,
ich danke euch für eure tatkräftige Hilfe. Die Registrierung hat jetzt geklappt.
Hier mal meine 3 Scripte. Ein Testscript. Es wird eine Blätterfunktion per use do oder require eingebuden.
dateiA:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/local/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
#Includes
use lib ('C:/Programme/xampp/htdocs/ptest');
use func;
#GET HOLEN
#Die Seitenzahl wird übergeben
#Wenn vorhanden $seite=übergabe
#Sonst $seite = die übergebene Seitenzahl
my $daten = $ENV{'QUERY_STRING'};;
my @formulardaten = split(/=/, $daten);
my $seite ="";
if($formulardaten[0] eq "") {
my $seite=1;
}
else {
$seite = $formulardaten[1];
}
#Werte für Blätterfunktion ermitteln
#Start und Eintraege_pro_seite wird für das Limit bei der Sql abfrage benötigt
my $eintraege_pro_seite = 8;
my $start=$seite * $eintraege_pro_seite - $eintraege_pro_seite;
#Berechnung: Wieviele Seiten wird es geben
#Die Menge kommt aus der Datenbank
#Hier setzt ich die Menge mal auf 47
my $menge=47;
my $maxseite=$menge/$eintraege_pro_seite;
#Parameter 4:
#Dieser steht für die anzahl zwichen den Seitenzahlen, die bei einer großen Seitenmenge vorliegt.
#Sprich: 1 ... 5678 ... letzte
# :-) Nicht ändern, nachher findest du noch eine Bug, das wäre nciht schön!
my $x = blaettern("./dateiA.pl", "4", "$seite", "$maxseite");
print "<br /><br />";
print "<div align=\"right\"><b>Seite:</b> $x</div>";
dateiB:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/local/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
#Includes
use lib ('C:/Programme/xampp/htdocs/ptest');
use func;
#GET HOLEN
#Die Seitenzahl wird übergeben
#Wenn vorhanden $seite=übergabe
#Sonst $seite = die übergebene Seitenzahl
my $daten = $ENV{'QUERY_STRING'};;
my @formulardaten = split(/=/, $daten);
my $seite ="";
if($formulardaten[0] eq "") {
my $seite=1;
}
else {
$seite = $formulardaten[1];
}
#Werte für Blätterfunktion ermitteln
#Start und Eintraege_pro_seite wird für das Limit bei der Sql abfrage benötigt
my $eintraege_pro_seite = 8;
my $start=$seite * $eintraege_pro_seite - $eintraege_pro_seite;
#Berechnung: Wieviele Seiten wird es geben
#Die Menge kommt aus der Datenbank
#Hier setzt ich die Menge mal auf 47
my $menge=47;
my $maxseite=$menge/$eintraege_pro_seite;
#Parameter 4:
#Dieser steht für die anzahl zwichen den Seitenzahlen, die bei einer großen Seitenmenge vorliegt.
#Sprich: 1 ... 5678 ... letzte
# :-) Nicht ändern, nachher findest du noch eine Bug, das wäre nciht schön!
my $x = blaettern("./dateiB.pl", "4", "$seite", "$maxseite");
print "<br /><br />";
print "<div align=\"right\"><b>Seite:</b> $x</div>";
func.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#Blätterfunktion
sub blaettern {
my $url=shift;
my $anhang="";
my $anzahl=shift;
my $seite=shift;
my $maxseite=shift;
my $get_name="seite";
$maxseite=int($maxseite+0.999);
if($url=~ /\?/ ) {
$anhang="&";
}
else {
$anhang="?";
}
if($anzahl % 2 != 0) {
$anzahl++;
}
my $a = $seite-($anzahl/2);
my $b = 0;
my @blaetter;
while($b <= $anzahl) {
if($a > 0 && $a <= $maxseite)
{
push(@blaetter,$a);
$b++;
}
elsif($a > $maxseite && ($a-$anzahl-2)>=0)
{
splice(@blaetter);
$a -= ($anzahl+2);
$b = 0;
}
elsif($a > $maxseite && ($a-$anzahl-2)<0)
{
last;
}
$a++;
}
my $return = "";
my $count=@blaetter;
my $exists = grep /^1$/, @blaetter;
if($exists!=1 && $count > 1) {
my $exists = grep /^2$/, @blaetter;
if($exists != 2 && $anzahl ne $maxseite) {
$return .= " <a href=\"$url$anhang$get_name=1\">1</a> ...";
}
else {
$return .= " <a href=\"$url$anhang$get_name=1\">1</a> ";
}
}
foreach(@blaetter) {
if($_ == $seite) {
$return .= " <b>$_</b> ";
}
else {
$return .= " <a href=\"$url$anhang$get_name=$_\">$_</a> ";
}
}
$exists = grep /^$maxseite$/, @blaetter;
if($exists != 1 && $count > 1) {
my $max = $maxseite-1;
my $exists = grep /^$max$/, @blaetter;
if($max != 1) {
$return .= "... <a href=\"$url$anhang$get_name=$maxseite\">letzte</a> ";
}
else {
$return .= " <a href=\"$url$anhang$get_name=$maxseite\">$maxseite</a> ";
}
}
return ($return);
}
1;
Folgendes passiert mit use und require:
Aufruf von dateiA - OK
Aufruf von dateiB - Undefined subroutine
Neustart des Webservers:
Aufruf von dateiB - OK
Aufruf von DateiA - Undefined subroutine
Mache ich das ganze mit do,
Aufruf von dateiB - OK
Aufruf von dateiA - OK
Ich hoffe ihr könnt den Fehler finden,
Vielen Dank,
Michaela