powerbulls
26.03.2004, 19:08:27
Folgendes Script habe ich geschrieben und es funktioniert perfekt, wenn ich die "global" weglasse und die Variable direkt in die Funktion setzte, wenns aber wie nachfolgend angegeben ist, sagt er immer, dies sei nicht ein "valid path", aber der stimmt ja, denn wenn ichs wie gesagt direkt in die funktion mit $ipdatei = "clicks/ip.txt"; einbette, dann gehts. Hoffe, mir kann jemand helfen, ich verzweifle gerade! Siehe Zeile 2 und 10!
Code:
--------------------------------------------------------------------
<?
$ipdatei = "clicks/ip.txt";//der relative Pfad zur Datei ip.txt
//und hier gehts dann auch schon los
$aktIP = $_SERVER['REMOTE_ADDR']; //IP abfragen
checkip($aktIP); //Aufruf Funktion checkip
//hier kommt die Funktion zum IP-Check
function checkip($ip)
{
global $ipdatei;
$dauer = 5; //Dauer in Minuten angeben für die Sperre
$exists = FALSE;
$timestamp = time();
$file = file($ipdatei);
$ipdatei = fopen($ipdatei,"w+");
foreach ($file as $line)
{
$exp_line = explode("|", $line);
if ($exp_line[0] == $ip) //wenn die Zeile der Schleife die IP beinhaltet
{
$exists = TRUE; //hier wird der ein marker auf true gesetzt, da die IP schon vorkommt
if(($exp_line[1]+ 60*$dauer) < $timestamp) // IP ist nicht mehr gesperrt
{
fputs($ipdatei, "$exp_line[0]|$timestampn"); //neue Daten für diese IP werden geschrieben...
zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
}
else //IP ist noch gesperrt
{
fputs($ipdatei, "$line");
}
}
else //wenn die Zeile der Schleife die IP nicht beinhaltet...
{
if(($exp_line[1]+ 60*$dauer) > $timestamp) //und noch eine Sperre für diese Zeile existiert...
{
fputs($ipdatei, "$line"); //wird sie nochmal gleich reingeschrieben, ansonsten wird sie gelöscht!
}
}
}
if ($exists == FALSE) //hier wird der oben gesetzte Marker abgefragt, wenn er nicht auf TRUE ist, ist die IP neu und wird eingefügt
{
fputs($ipdatei, "$ip|$timestampn"); //neue Zeile für neue IP wird geschrieben
zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
}
fclose($ipdatei);
}
und hier geht dann mit anderem weiter!
Danke für Eure Zeit!
Torben
Code:
--------------------------------------------------------------------
<?
$ipdatei = "clicks/ip.txt";//der relative Pfad zur Datei ip.txt
//und hier gehts dann auch schon los
$aktIP = $_SERVER['REMOTE_ADDR']; //IP abfragen
checkip($aktIP); //Aufruf Funktion checkip
//hier kommt die Funktion zum IP-Check
function checkip($ip)
{
global $ipdatei;
$dauer = 5; //Dauer in Minuten angeben für die Sperre
$exists = FALSE;
$timestamp = time();
$file = file($ipdatei);
$ipdatei = fopen($ipdatei,"w+");
foreach ($file as $line)
{
$exp_line = explode("|", $line);
if ($exp_line[0] == $ip) //wenn die Zeile der Schleife die IP beinhaltet
{
$exists = TRUE; //hier wird der ein marker auf true gesetzt, da die IP schon vorkommt
if(($exp_line[1]+ 60*$dauer) < $timestamp) // IP ist nicht mehr gesperrt
{
fputs($ipdatei, "$exp_line[0]|$timestampn"); //neue Daten für diese IP werden geschrieben...
zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
}
else //IP ist noch gesperrt
{
fputs($ipdatei, "$line");
}
}
else //wenn die Zeile der Schleife die IP nicht beinhaltet...
{
if(($exp_line[1]+ 60*$dauer) > $timestamp) //und noch eine Sperre für diese Zeile existiert...
{
fputs($ipdatei, "$line"); //wird sie nochmal gleich reingeschrieben, ansonsten wird sie gelöscht!
}
}
}
if ($exists == FALSE) //hier wird der oben gesetzte Marker abgefragt, wenn er nicht auf TRUE ist, ist die IP neu und wird eingefügt
{
fputs($ipdatei, "$ip|$timestampn"); //neue Zeile für neue IP wird geschrieben
zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
}
fclose($ipdatei);
}
und hier geht dann mit anderem weiter!
Danke für Eure Zeit!
Torben