PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausländischen traffic automatisch sperren



Hardy
29.03.2008, 21:14
Hallo,
um meinen klickbereich automatisch von ausländischen traffic vernzuhalten habe ich mit mal was eingebaut in die klick4.php


<?
$ccode_array = mysql_fetch_array(db_query("SELECT * FROM laendercode WHERE IP_FROM<=inet_aton('".$ip."') AND IP_TO>=inet_aton('".$ip."');"));
$land=$ccode_array['land'];
if ($ccode_array['land'] == 'GERMANY' OR 'AUSTRIA' OR 'SWITZERLAND'){?>
<center>Geloggte IP: <?=$ip;?> | Zugewiesenes Land: <?=$land;?> | Status: <font color=lightgreen>OK</font></center><BR>
<?}else{?>
<center>Geloggte IP: <?=$ip;?> | Zugewiesenes Land: <?=$land;?> | Status: <font color=red>Nicht OK</font></center><BR>
<?
db_query("UPDATE ".$db_prefix."_kontodaten SET ks_ausgeschlossen = 1 WHERE uid='".$_SESSION['uid']."'");
}?>Normal sollten so doch eigentlich alle user deren ip nicht das land GERMANY, AUSTRIA oder SWITZERLAND automatisch den ks_ausgeschlossen status 1 bekommen.
Aber leider klicken ist dem nicht so wo könnte nun also der fehler liegen?

schulz3000
29.03.2008, 22:07
ich denke es liegt an deiner if-Anweisung, probier mal:


if($land == 'GERMANY' XOR $land == 'AUSTRIA' XOR $land == 'SWITZERLAND')

Hardy
29.03.2008, 22:15
Hab es jetzt mal mit der abfrage versucht aber dann zeigt er mir folgendes an


Geloggte IP: 77.128.26.38 | Zugewiesenes Land: GERMANY | Status: Nicht OK:rolleyes5: status müsste aber OK sein

didith1207
30.03.2008, 03:49
Da dieser Code wirklich sehr hilfreich sein kann hab ich mal drann rumgespielt :)

Das Problem scheint wirklich an der if abfrage zu liegen ...
Wenn ich mein Land entferne schreibt das ding trotzdem OK



Ps.: da bin ich mal gespannt wo der denkfehler sich eingeschlichen hat....

Worka
30.03.2008, 04:52
Ich habe es mal so vereinfacht, dass ich einfach irgendeine Zahl als IP eintrage und ein belibigen Wert für das Land.
Ich habe den Variablen also einfach einen Wert zugeordnet, und lasse den Code mit den Werten arbeiten.



<?
$ip='123';
$ccode_array = 'GERMANY1';
if ($ccode_array == 'GERMANY' OR $ccode_array == 'AUSTRIA' OR $ccode_array == 'SWITZERLAND'){?>
<center>Geloggte IP: <?=$ip;?> | Zugewiesenes Land: <?=$ccode_array;?> | Status: <font color=lightgreen>OK</font></center><BR>
<?}else{?>
<center>Geloggte IP: <?=$ip;?> | Zugewiesenes Land: <?=$ccode_array;?> | Status: <font color=red>Nicht OK</font></center><BR>
<?
}?>


Das funktioniert bei mir so wie es sollte.
Ist $ccode_array = 'GERMANY' oder 'AUSTRIA' oder 'SWITZERLAND', so ist alles "OK", ansonsten "Nicht OK"

Wenn da also was nicht funktioniert wird es wohl daran liegen, dass Deine Variablen nicht den richtigen Inhalt haben.

Hardy
30.03.2008, 10:16
Kann ich mir eigentlich nicht vorstellen da die Ausgabe ja richtig war.
Aber ich habe das jetzt anders gelöst und es funktioniert nun.
Wenn ich dann nachher zeit habe werde ich das ganze mal zu einen Addon für den downloadbereich zusammen packen.
trotzdem danke für die hilfe.