Schrift
[thread]27[/thread]

Votingscript mit IP-Sperre



<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten
MW2000
 2003-09-07 21:32
#2393 #2393
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
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:

Code: (dl )
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
eisbeer
 2003-09-07 21:41
#2394 #2394
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich habs n bissle umgeschrieben :)

Code (perl): (dl )
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
#! /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 );

foreach my $Zeile (@Zeilen) {
  chomp $Zeile;
  if ( $Zeile =~ /^$ip/ ) {
     print "Content type: text/html\n\n";
     print "<html>\n<head>\n<title>Fehler</title>\n</head>\n<body>\n";
     print "<br><br><br>Du hast schon gevotet oder bist gesperrt!<br>\n";
     print "Klicke <a href=\"\">hier</a> um die Ergebnisse anzuzeigen\n";
     print "</body>\n</html>";
     exit;
  }
  else {
    open ( Datei, ">>$ipdatei" );
    print Datei "\n$ip";
    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>";
  }
}


untested ....
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Ishka
 2003-09-07 21:42
#2395 #2395
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Was macht es denn genau? Gibts ne Fehlermeldung aus, macht es gar nichts?
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
MW2000
 2003-09-07 21:43
#2396 #2396
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nur um auch zu verstehen, was am ende im Script stehen soll: Was macht chomp? meiner Meinung löscht es doch das letzt zeichen, oda das erste?
Rächtschraibfehla sin Gratis
Ishka
 2003-09-07 21:46
#2397 #2397
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das chomp löscht das letzte Zeichen - aber nur, wenn es ein Zeilenumbruch ist
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
eisbeer
 2003-09-07 21:46
#2398 #2398
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Jain, es löscht aus einem String alle in $/ definierten Zeichen, und da steht standartmäßig
\n drin.
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
MW2000
 2003-09-07 21:47
#2399 #2399
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
sry, aber das funzt net, gibt nen 500er fehler aus
:(
Rächtschraibfehla sin Gratis
eisbeer
 2003-09-07 21:47
#2400 #2400
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ok ja stimmt, nicht alle zeichen, sondern das letzte :)
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
MW2000
 2003-09-07 21:48
#2401 #2401
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich kriege von dem ganzen nen 500er Fehler, also das was du gesagt hast geht net, sry!\n\n

<!--EDIT|MW2000|1062957272-->
Rächtschraibfehla sin Gratis
Relais
 2003-09-07 21:51
#2402 #2402
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
schreib mal immer:
Code: (dl )
1
2
open( ... )
or die qq(Oeffnen zum Lesen/Schreiben fehlgeschlagen: $!\n);
damit Du siehst, ob das Öffnen der Datei Erfolg hatte, und falls nicht aus welchem Grund denn nicht.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten



View all threads created 2003-09-07 21:32.