Also ich will mit dem folgendem Scribt User dazu verdonnern das sie nur einmal pro Minute Posten können. Das will ich mit ner IP-sperre machen aber das funktioniert irgendwie nicht. Er zählt die Skunden zwar runter aber fängt dann wieder bei 1 min an ohne das ich einen 2. Post machen kann...bedanke mich für jede Hilfe hier kommt mein Scribt:
PHP
<?php
$error = FALSE;
$logfile = $_SERVER["REMOTE_ADDR"].'.txt';
foreach (glob("*.txt") as $filename)
#Prüfen ob der User einen Eintrag in der Sperrzeit von 1 min gemacht hat, wenn ja kein post sondern Fehlermeldung
if (isset($_POST['Senden']) && file_exists($logfile) && ((filectime($logfile)+ 3600) >= time()))
{
$error = TRUE;
$ec[] = "
||Spam-schutz|| Sie können einen weiteren Beitrag in ".date("s",((filectime($logfile)+ 3600)-time()))." sec machen";
}
#Dateien bereinigen:
elseif (count($filename) > 0 && filectime($logfile)+ 3600 <= time())
{
$f = fopen($filename,"r");
$t = fgets($f);
fclose($f);
($t+3600 <= time()?unset($filename):'');
}
if (($_POST['i_name'] == NULL || $_POST['i_email'] == NULL || $_POST['t_text'] == NULL) && isset($_POST['Senden']))
{
$error = TRUE;
$ec[] = "Sie haben ein oder mehrere Felder nicht ausgefüllt";
}
#prüfen obs gepostet ist und dann variablen definieren
if (isset($_POST['Senden']) && !$error)
{
setcookie("Name", $_POST['i_name'],time()+ 216000);
setcookie("Email", $_POST['i_email'],time()+ 216000);
if ($_COOKIE['Name'])
$ec[] = "Cookie gesetzt";
$name = $_POST['i_name'];
$datum = date ("D d F Y");
$email = $_POST['i_email'];
$text = $_POST['t_text'];
$str =$name.'#'.$datum.'#'.$email.'#'.$text;
$datei = fopen('text.gb', "a+");
$write = fwrite($datei,$str."\n");
fclose ($datei);
$dateiIP = fopen($logfile, "a+");
$write = fwrite($dateiIP,time());
fclose($dateiIP);
HEADER("LOCATION: ".basename($_SERVER["PHP_SELF"]));
exit();
}
if ($error) echo "Fehler = true";
echo ((count($ec)>0)?implode('
', $ec):'');
if (is_readable('text.gb'))
{
$datei = fopen('text.gb', "r");
#schleife
while (($current_line = fgets($datei)) !== FALSE)
{
$arr = explode('#', $current_line);
echo '
<div align="center">
<table body background="Zwischenablage01.jpg" bordercolor="#FF0000" width="500" height="348">
<colgroup>
<col width = "200px">
<col width = "500px">
</colgroup>
<tr>
<td><font color="#FFFFFF">'.$arr[1].'</td>
<td rowspan="3"><font color="#FFFFFF">'.nl2br($arr[3]).'</td>
</tr>
<tr>
<td><font color="#FFFFFF">'.$arr[0].'</td>
</tr>
<tr>
<td>[img]showimg.php?show='.$arr[2].'[/img]
</tr>
</table>
</div>';
}
fclose ($datei);
}
echo '
<div align="center">
<form action="" method="post">
<table width="500">
<colgroup>
<col width = "200px">
<col width = "500px">
</colgroup>
<tr>
<td><font color="#FF0000">[b]';
if (ISSET ($_COOKIE['Name']))
{
echo '<input type="hidden" name="i_name" value="'.$_COOKIE['Name'].'" />Name:'.$_COOKIE['Name'];
}
else
{
echo 'Name:[/b]
<input type="text" name="i_name" value="" size="20" />';
}
echo '
</td>
<td rowspan="2"><font color="#FF0000">[b]GB-Eintrag:
[/b]<textarea name="t_text" wrap="virtual"></textarea></td>
</tr><tr>
<td><font color="#FF0000">[b]';
if (ISSET ($_COOKIE['Email']))
{
echo '
<input type="hidden" name="i_email" value="'.$_COOKIE['Email'].'" />Email:'.$_COOKIE['Email'].'[/b] ';
}
else
echo 'Email:[/b]
<input type="text" name="i_email" value="" size="20" />';
echo '
</td></tr>
<tr>';
if (file_exists("text.txt"))
{
$eintraege = count(file("text.txt"));
}
$tx = 'GB-Eintrag';
$tx2 = 'GB-Einträge';
if ($eintraege == 1)
{
echo $eintraege.$tx;
}
elseif ($eintraege > 1)
{
echo $eintraege.$tx2;
}
echo'
</table>
<input type="submit" value="Senden" name="Senden">
</form>';
?>
Alles anzeigen