Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


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