Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


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