| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

16-06-2010, 13:54
|
|
meskalin
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 33
|
|
ip sperre fehler
ich wollte eine kleine flood protection mit einer ipsperre machen allerdings bekomme ich schon die bitte warten meldung bei leerer ip datenbank
aufruf:
PHP-Code:
if (!empty($_POST)) {
$fehler ="";
if (isip_gesperrt(getip())){
die ("Sie haben schon einen Eintrag gemacht bitte warten");
}
.....
}
funktionen:
PHP-Code:
function getip(){
$pheaders = array(
'HTTP_X_FORWARDED_FOR',
'HTTP_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_FORWARDED',
'HTTP_CLIENT_IP',
'HTTP_FORWARDED_FOR_IP',
'HTTP_VIA',
'VIA',
'X_FORWARDED_FOR',
'FORWARDED_FOR',
'X_FORWARDED',
'FORWARDED',
'CLIENT_IP',
'FORWARDED_FOR_IP',
'HTTP_PROXY_CONNECTION'
);
$ip = $_SERVER["REMOTE_ADDR"];
foreach($pheaders as $i){
//proxy detected? lets log...
if($_SERVER[$i])
$ip = $_SERVER[$i];
}
return $ip;
}
function isip_gesperrt($ip){
$db = new mysqli($GLOBALS['db_host'], $GLOBALS['db_user'], $GLOBALS['db_password'],$GLOBALS['db_name']);
if (mysqli_connect_errno()) {
die("Could not connect: ".mysqli_connect_error());
}
$sperre=time()-10;
$jetzt=time();
$ip = getip();
mysqli_query($db, "DELETE FROM ipsperre WHERE time<$sperre");
$result = mysqli_query($db,"SELECT ip FROM ip WHERE ip='$ip'");
$count=mysqli_num_rows($result);
if ($count>0){
mysqli_query($db,"INSERT INTO ip (ip, time) VALUES ('$ip', '$jetzt')");
return false;
}else
return true;
}
|

16-06-2010, 14:16
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
heißt die Tabelle nun ip oder ipsperre? Außer beim Verbinden sehe ich keinerlei Fehlerbehandlung.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

16-06-2010, 14:21
|
|
jmc
PHP Junior
|
|
Registriert seit: Mar 2006
Beiträge: 868
|
|
PHP-Code:
if ($count>0){ mysqli_query($db,"INSERT INTO ip (ip, time) VALUES ('$ip', '$jetzt')"); return false; }else return true; }
Da setzt du die IP nochmals rein, wenn count bereits grösser als 0 also ein Eintrag vorhanden ist und umgekehrt. Es mag auch noch an sonstwas liegen, aber das ist sicher schon einmal ein Fehler.
PHP-Code:
array( 'HTTP_X_FORWARDED_FOR', 'HTTP_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED', 'HTTP_CLIENT_IP', 'HTTP_FORWARDED_FOR_IP', 'HTTP_VIA', 'VIA', 'X_FORWARDED_FOR', 'FORWARDED_FOR', 'X_FORWARDED', 'FORWARDED', 'CLIENT_IP', 'FORWARDED_FOR_IP', 'HTTP_PROXY_CONNECTION' );
Darf ich fragen woher du diesen Array hast? Werden die alle wirklich manchmal gesetzt?
|

16-06-2010, 16:19
|
|
meskalin
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 33
|
|
Danke, ich hab wohl dier if else bedingung vertauscht das array dient dazu um die ip zu bestimmen wenn man über einen proxy kommt.
|

16-06-2010, 18:56
|
|
jmc
PHP Junior
|
|
Registriert seit: Mar 2006
Beiträge: 868
|
|
Es war schon klar wozu er gedacht ist, ich habe gemeint woher du diesen Array hast ich meine eine Quelle dazu. Ich habe bei einem Teil noch nie gehört, dass diese Systemvariabeln gesetzt werden, deshalb habe ich gefragt.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
Ähnliche Themen
|
| Thema |
Autor |
Forum |
Antworten |
Letzter Beitrag |
|
IP-Sperre?
|
unwissend |
PHP Developer Forum |
2 |
05-08-2006 00:48 |
|
IP Sperre
|
phpnooooob |
PHP Developer Forum |
24 |
28-01-2006 20:38 |
|
IP-Sperre
|
jOhnny knOx |
Tutorials |
39 |
30-05-2003 12:57 |
|
IP Sperre
|
Munch2002 |
PHP Developer Forum |
10 |
12-04-2002 23:20 |
|
ip-sperre
|
Robert[aS] |
PHP Developer Forum |
11 |
07-02-2002 14:26 |
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|