Es geht schon wieder los mit den Problemen in diesem Script:
Diesmal liegt es bei der auswertung. Ich habe leider keine möglichkeit, die ergebnisse richtig einzuspeichern, deshalb muss ich das script jedes mal ändern, wenn es mehr oder weniger antwortmöglichkeiten geben soll. im moment habe ich eine Lösung, aber auch bei der funktioniert das nicht so ganz. ich habe eine datei für jede der antworten. und die lese ich aus und rechne in Prozent um. Doch dabei löscht er die inhalte de rdateien auch noch. Hiermit bitte ich darum, mir eine bessere lösung zu sagen, damit ich diese Probleme los werde:
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
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;
print $cgi->header(-type =>'text/html');
print $cgi->start_html(- title =>'Vielen Dank',
-BGCOLOR =>'#000000'
-TEXT =>'#00FF00');
print $cgi->body;
my $ip = $ENV{'REMOTE_ADDR'};
my $ipdatei = "$ENV{'DOCUMENT_ROOT'}/ip.txt";
my ($abort,$line);
open (FILE, "$ipdatei") or die "Kann die IP-Datei nicht öffnen";
my @Zeilen = <FILE>;
close (FILE);
foreach $line (@Zeilen) {
chomp $line;
if ($line eq $ip) {
print "<br><br><br>Entweder du hast schon gevotet oder bist gesperrt.<br>\n";
$abort='yes';
last;
}
}
if ($abort ne 'yes') {
open (FILE, ">$ipdatei" ) or die 'Kann nicht in die IP-Datei schreiben';
print FILE $ip."\n";
close (FILE);
print "<br><br><br>Der Vote wurde registriert.<br>\n";
# bis zu diesem kommentar funktionierte alles und tuts auch noch.
#aber wie gesagt, es muss je umfrage die zahlen geändert werden müssen, und ab hier ist das dann alles, was damit zu tun hat.
#'vote' ist eine Radiobutton-Gruppe und wird per Post übergeben.
my $vote;
$vote = $cgi->param('vote');
open ( Datei, ">$ENV{'DOCUMENT_ROOT'}/$vote.txt" );
my @Zahl = <Datei>;
@Zahl = @Zahl + 1;
print Datei @Zahl;
close ( Datei );
}
print "Vielen Dank<br><br>\n";
open ( Datei, ">$ENV{'DOCUMENT_ROOT'}/auswahl1.txt" );
my @eins = <Datei>;
close ( Datei );
open ( Datei, ">$ENV{'DOCUMENT_ROOT'}/auswahl2.txt" );
my @zwei = <Datei>;
close ( Datei );
open ( Datei, ">$ENV{'DOCUMENT_ROOT'}/auswahl3.txt" );
my @drei = <Datei>;
close ( Datei );
open ( Datei, ">$ENV{'DOCUMENT_ROOT'}/auswahl4.txt" );
my @vier = <Datei>;
close ( Datei );
open ( Datei, ">$ENV{'DOCUMENT_ROOT'}/auswahl5.txt" );
my @fuenf = <Datei>;
close ( Datei );
my $gesamt = @eins+@zwei+@drei+@vier+@fuenf;
print $gesamt;
my $einser = @eins / $gesamt*100;
my $zweier = @zwei / $gesamt*100;
my $dreier = @drei / $gesamt*100;
my $vierer = @vier / $gesamt*100;
my $fuenfer = @fuenf / $gesamt*100;
print "Es wurde folgendermaßen gevotet:<br><br>\n",
"".$einser." \% für Auswahl 1<br>\n",
"".$zweier." \% für Auswahl 2<br>\n",
"".$dreier." \% für Auswahl 3<br>\n",
"".$vierer." \% für Auswahl 4<br>\n",
"".$fuenfer." \% für Auswahl 5<br>\n",
$cgi->end_html;
EDIT: das print $gesamt habe ich eingebaut, um zu sehen ob die gesamtzahl der votes auch schon falsch ist: hier wird 0 angezeigt. Die dateien sind ASCII hochgeladen und in den dateien habe ich testweise überall ne 1 stehen\n\n
<!--EDIT|MW2000|1063311620-->
Rächtschraibfehla sin Gratis