Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.40 veröffentlicht (28.05.26)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
IP Begrenzer
#1
Eine neue Erweiterung wurde veröffentlicht: IP Begrenzer

Zitat:Begrenzt den Zugriff zum Forum auf bestimmte IP-Adressen und/oder IP-Bereiche.

Um IP Begrenzer zu installieren, lade die extrahierte Datei in das inc/plugin Verzeichnis hoch und aktiviere das Plugin über das Admin-Control-Panel.
Zitieren
#2
Ich habe versucht die Funktion so zu ändern damit nur ein Forum begrenzt wird
irgendwo habe ich ein Fehler gemacht, hat jemand eine Ahnung:

original:
PHP-Code:
if(is_array($restrictedips)) { foreach($restrictedips as $key => $restrictedip) { $restrictedip = trim($restrictedip); if($restrictedip != '') { if(!strstr($_SERVER['REMOTE_ADDR'], $restrictedip)) { ++$count; } } } if($count == count($restrictedips)) { die("Your IP Address Does not match that of one needed to gain access to this forum."); } }

Meine Änderung:
PHP-Code:
if(is_array($restrictedips)) { foreach($restrictedips as $key => $restrictedip) { $restrictedip = trim($restrictedip); if($restrictedip != '') { if(!strstr($_SERVER['REMOTE_ADDR'], $restrictedip)) { ++$count; } } } if($count == count($restrictedips) and $forum['fid'] == '55') { die("Your IP Address Does not match that of one needed to gain access to this forum."); } }
Zitieren
#3
Das Plugin wirkt doch global? Da kannst du nicht mit $forum arbeiten.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
Hallo Stefan,

stimmt und damit hast du mir sehr geholfen
so geht es:
PHP-Code:
global $forum,$mybb,$db; $fid=intval($mybb->input['fid']); $forum=$db->fetch_array($db->simple_select("forums","*","fid='$fid'")); $restrictedips = explode(",", $mybb->settings['rtipadresses']); if(is_array($restrictedips)) { foreach($restrictedips as $key => $restrictedip) { $restrictedip = trim($restrictedip); if($restrictedip != '') { if(!strstr($_SERVER['REMOTE_ADDR'], $restrictedip)) { ++$count; } } } if($count == count($restrictedips) and $forum['fid'] == '55') { die("Your IP Address Does not match that of one needed to gain access to this forum."); } } }

DankeWink
RII
Zitieren
#5
Erstmal müsste man das Forum ja finden... Warm benutzt du nicht gleich $mybb->input['fid']? Das Query ist doch überflüssig. Wenn du es global als $forum speicherst, überschreibst du übrigens auch MyBB-Variablen, die so heißen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#6
wie meinst du dass mit dem Forum finden?
mit $mybb->input['fid'] ging es nicht!
Ich habe gemerkt dass man die Threads trotzdem anklicken konnte, so klappt es besser:
PHP-Code:
global $forum,$mybb,$db; $fid=intval($mybb->input['fid']); $tid=intval($mybb->input['tid']); if ($tid) { $getInfo=$db->fetch_array($db->query("SELECT fid FROM ".TABLE_PREFIX."posts WHERE tid='$tid'")); $fid=$getInfo['fid']; } if ($_GET['id']) { $id=intval($_GET['id']); $getInfo=$db->fetch_array($db->query("SELECT fid FROM ".TABLE_PREFIX."posts WHERE tid='$id'")); $fid=$getInfo['fid']; } if ($forum['fid']) { $fid=$forum['fid']; } $forum=$db->fetch_array($db->simple_select("forums","*","fid='$fid'")); $restrictedips = explode(",", $mybb->settings['rtipadresses']); if(is_array($restrictedips)) { foreach($restrictedips as $key => $restrictedip) { $restrictedip = trim($restrictedip); if($restrictedip != '') { if(!strstr($_SERVER['REMOTE_ADDR'], $restrictedip)) { ++$count; } } } if($count == count($restrictedips) and $forum['fid'] == 'XY) { header("Location: http://www.xxxxxxx.tld/forum-XY.html"); } }
Die Überschreibung ist nicht so wichtig oder?

L.G
RII
Zitieren