Bitte um Hilfe. Hatte dafür keine Vorlage(-n). Habe mit der IP-Sperre angefangen und wollte es testen, aber nicht alles funktioniert.
Ich beschreibe erst, was das Script bis zu der Stelle wo es aufhört, machen soll:
E wird die IP des aufrufenden Uers ausgelesen und mit einer Textdatei verglichen, in der die bisherigen IPs gespeichert sind. Wenn die IP dabei ist, wird eine Meldung ausgegeben, andernfalls wird die IP der Liste hinzugefügt.
Was funktioniert nicht???
-> es funktioniert das schreiben der IP in die Textdatei nicht
Was habe ich überprüft?
->CHMOD stimmt
->SOWOHL ip.txt ALS AUCH vote.cgi (dateiname des scripts) im ASCII MODUS HOCHGELADEN
Und jetzt der Quellcode:
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/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;
my $ip;
my $ipdatei;
my $vote;
my @Zeilen;
$ip = $ENV{'REMOTE_ADDR'};
$ipdatei = "/homepages/18/d23090695/htdocs/ip.txt";
open ( Datei, "<$ipdatei" );
@Zeilen = <Datei>;
close ( Datei );
my @NeueZeilen;
foreach my $Zeile (@Zeilen) {
if ( $Zeile =~ /^$ip/ ) {
print "Content type: text/html\n\n";
print "<html>\n<head>\n<title>Vielen
Dank</title>\n</head>\n<body>\n";
print "<br><br><br>Der Vote wurde registriert.<br>\n";
print "Vielen Dank\n";
print "</body>\n</html>"; }
else {
push ( @NeueZeilen, $Zeile, $ip );
}
}
open ( Datei, ">$ipdatei" );
print Datei @NeueZeilen;
close ( Datei );
print "Content type: text/html\n\n";
print "<html>\n<head>\n<title>Vielen Dank</title>\n</head>\n<body>\n";
print "<br><br><br>Der Vote wurde registriert.<br>\n";
print "Vielen Dank\n";
print "</body>\n</html>";
MFG,
euer MW2000\n\n
<!--EDIT|MW2000|1062956102-->
Rächtschraibfehla sin Gratis