Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
19.03.2002, 17:42
Megge



sollt ein counter mit ip sperre geben.
counter geht schon prima, nur die ip sperre macht noch mucken.
Quellcode:[b]der counter ohne ip sperre[/b]
<?php
if (file_exists("counter.php")) [color="#ff0000"]// sind schon seitenzugriffe gezählt worden ?[/color]
{
include("counter.php"); [color="#ff0000"]// wenn ja, includen[/color]
}
else
{
$ppls_count = 0; [color="#ff0000"]// wenn nein, ne variable erstellen, die den counter auf 0 setzt[/color]
}
$nwcntr = $ppls_count + 1; [color="#ff0000"]// counter um eins erhöhen[/color]
$nwstg = '<?
$ppls_count = ' . $nwcntr . ';
?>'; [color="#ff0000"]// counter.php vorbereiten (wird dann später im code geschrieben)[/color]
$updcnt = fopen("counter.php", "w");
if( !$updcnt ) [color="#ff0000"]// kein zugriff möglich ?[/color]
{
print "<b>Can't update counter !</b><br><br>is 'counter.txt' write protected ?"; [color="#ff0000"]// wenn ja, error message[/color]
}
else
{
fwrite($updcnt, $nwstg); [color="#ff0000"]// wenn nein, datei neuschreiben mit aktualisiertem counter[/color]
}
print $nwcntr . " Besucher<br>seit 19.03.2002"; [color="#ff0000"]// counter mit aktualisiertem counter ausgeben.[/color]
?>

dann hab ich ein bissel rumgewerkelt..
Quellcode:[b]counter mit ip sperre[/b]
<?php
if (file_exists("counter.php"))
{
include("counter.php");
}
else
{
$ppls_count = 0;
}
$nwcntr = $ppls_count + 1;
$nwstg = '<?
$ppls_count = ' . $nwcntr . ';
?>';
$updcnt = fopen("counter.php", "w");
if( !$updcnt )
{
print "<b>Can't update counter !</b><br><br>is 'counter.txt' write protected ?";
}
else
{ [color="#ff0000"]// alles gleich bis hierher..[/color]
if (!file_exists ("blocked/" . $REMOTE_ADDR . ".php")) [color="#ff0000"]// existiert eine datei mit deiner ip als name ?[/color]
{
fwrite($updcnt, $nwstg); [color="#ff0000"]// wenn nein, wird die counter-datei geschrieben (um 1 erhöht)[/color]
fclose($updcnt); [color="#ff0000"]// und wieder geschlossen[/color]
$blip = fopen ("blocked/" . $REMOTE_ADDR . ".php", "w+"); [color="#ff0000"]// eine datei wird erstellt[/color]
$blct = $REMOTE_ADDR; [color="#ff0000"]// und ein (nicht genutzer) inhalt reingeschrieben[/color]
fwrite($blip, $blct); [color="#ff0000"]// und eine ip-datei egschrieben[/color]
fclose($blip); [color="#ff0000"]// und wieder geschlossen[/color]
}
else
{
print "deine ip existiert schon, counter wird nicht erhöht"; [color="#ff0000"]// selbsterklärend, wird noch rausgenommen..[/color]
}
}
print $nwcntr . " Besucher<br>seit 19.03.2002";
?>

problem #1
diese ip datei wird nicht geschrieben, wenn sie noch nicht vorhanden ist, obwohl sie das doch tun sollte mit w oder w+
problem #2
wenn ich diese ip datei manuell mache, so überschreibt er die counter.php mit einer leeren datei und in der [ip].php ist auch nix. in der fertigen datei steht dann nur noch "deine ip existiert schon, counter wird nicht erhöht1 Besucher seit 19.03.2002"

ich komm einfach ned drauf, was hier falsch ist...

--


Dieser Beitrag wurde am 19.03.2002 um 17:46 von Megge bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
20.03.2002, 21:06
Megge



irgendso ein freaky muss es doch geben, der hier was falsches drin findet.
habs extra noch detailliert kommentiert, damit die einarbeit in den kleinen code leicht fällt..

--

zum Seitenanfang zum Seitenende Profil || Suche
002
20.03.2002, 21:24
dp
Administrator


hat der webserver denn schreibrechte auf blocked/ als verzeichnis ?

--

zum Seitenanfang zum Seitenende Profil || Suche
003
20.03.2002, 21:54
Megge



ich habs auf meinem lokalrechner getestet.
dort is nix schreibgeschützt. desweitern könnte ich ja bereits erfolgreich mit dem simpleren script schreiben

--

zum Seitenanfang zum Seitenende Profil || Suche
004
20.03.2002, 22:00
dp
Administrator


hm je nach php config könnten GLOBALS off sein, das würden heißen du müsstest erst die variable $REMOTE_ADDR mit getenv() holen:

$ip = getenv('REMOTE_ADDR');

--

zum Seitenanfang zum Seitenende Profil || Suche
005
20.03.2002, 22:55
Megge



ne, die ip kann ich schon auslesen, das ist kein problem...

--

zum Seitenanfang zum Seitenende Profil || Suche
006
21.03.2002, 15:04
apfelkorn



mh, es könnte sein, das der dateiname nicht für voll geht...
probiermal das ganze als eine liste ein eine einzelne textdatei zu schreiben. du liest das ganze als array an und jenachdem was kommt kannst du dann mimt if(is_in_array(odersoaehnlich[]) prüfen obs schon drin ist...

--

zum Seitenanfang zum Seitenende Profil || Suche