Aus gegebenen Anlaß: pagerestrictor_log_0.3c fuer pragmaMx

Begonnen von gerdc, 05 Juli 2008, 15:47:38

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

gerdc

Hallo, alle zusammen,
aus von bot-trap.de gegebenen Anlass:
bei http://www.bot-trap.de/wiki/wikka.php?wakka=PageRestrictorCustom findet man folgenden Hinweis:
WICHTIGE AENDERUNGEN AUS SICHERHEITSGRUENDEN ZUM 01.07.2008:....

Eine davon betrifft die restrictor_log.php im Verzeichnis: ./admin/modules/
nämlich:
define('PRES_LOG_FILE', 'dein-pfad/dein-logfile.log');//Log-Datei auf eigenen Pfad umstellen,
z.B. taegl. neue Log-Datei via date("Ymd") ..

Für den pagerestrictor_log 0.3c UND damit für pragmaMx bedeutet dieses:
Der Logfile-Pfad wird durch eine Konstante 'PRES_LOG_FILE' definiert.
Vorher geschah dieses über die Variable '$presLogFile'.
Wird die NEUE Konstante NICHT definiert, wird das Log.File im
Verzeichnis des PRES unter dem Namen: page.restrictor.log abgelegt.

Nun gibt es 2 Möglichkeiten fuer den page_restrictor 0.3c:
#####################################
1. Ohne Aenderung der mainfile.php:
In der admin/modules/page_restrictor.php den Logfilepfad aendern (~ Zeile 15):
von:
$logfile = './restrictor/log/'.date("Ymd").'.log';

in:
$logfile = './restrictor/page.restrictor.log';


Mit dieser Aenderung entfällt das TAEGLICHE Logfile und das von PRES angelegte File 'page.restrictor.log'
muss nach einer gewissen Zeit wieder geleert werden.
####
ODER
####
2. Mit Aenderung der mainfile.php:
a) mainfile.php:(ca. Zeile ~158)
-----------------------------
Aendere die folgende Zeile
von:
$presLogFile = $_SERVER['DOCUMENT_ROOT'] . '/restrictor/log/'.date("Ymd").'.log';

in:
define('PRES_LOG_FILE', ''. $_SERVER['DOCUMENT_ROOT'] . '/restrictor/log/'.date("Ymd").'.log');

//Hinweis: Alles EINFACHE Hochstriche, ausser "Ymd".
UND
b) admin/modules/restrictor_log.php: (ca. Zeile ~15)
-------------------------------------------------
Aendere Zeile::
von:
$logfile = './restrictor/log/'.date("Ymd").'.log';

in die Zeilen:
   if (!defined("PRES_LOG_FILE")) die("constant (log) not found");
//Abbruch mit Meldung, wenn NICHT definiert.
  $logfile = PRES_LOG_FILE;

Mit dieser Aenderung bleiben die TAEGLICHEN Log-Files erhalten.
#####################################

Ich pers. ziehe die Aenderung Nr.2 vor.

MfG
Gerd
GCW

_icke_

Hallo,

ich vermute mal das ist nicht die originale mainfile.php. Denn in meiner sieht der Bereich so aus:

/**
* restrictor von http://www.bot-trap.de/
*/
if (!defined('mxDontLoadPageRestritor') && ((!MX_IS_ADMIN && !MX_IS_USER) || (MX_IS_ADMIN && isset($_GET['pres']))) && file_exists('./restrictor/page.restrictor.php')) {
    if (!MX_IS_ADMIN) {
        unset($_GET['pres']);
    }
    @chdir('./restrictor');
    @include_once('./page.restrictor.php');
    @chdir(dirname(__file__));
    unset($forbiddenIPs, $forbiddenIPRanges, $forbiddenUAs, $forbiddenReferers);
}


VG Marc

gerdc

#2
Hallo,  icke,
richtig vermutet.

Die Aenderung gilt also nur fuer den Fall, dass fuer das pagerestrictor_log 0.3c Script die blaue Zeile (die Zeile fuer die taeglichen LogFiles) bereits hinzugefuegt wurde. Die Konst-Definition ist jedoch immer dann noetig, wenn fuer das Log-File ein anderer Pfad (oder  auch Name) als der PRES-Pad eingerichtet ist.

Gruss
Gerd
GCW

_icke_

Hallo Gerd,

aber wo ist das denn her?

In der Installationsanweisung zum page restrictor log v0.3c steht zu dieser Codeänderung nichts. Es sollen nur die Dateien übertragen werden und fertig.

VG Marc

GerhardSt

Hi _icke_ ;)

ich glaube das ganze stammt aus dem Bot-Trap-Wiki  :smile:

Füg die Zeile define('PRES_LOG_FILE', ''. $_SERVER['DOCUMENT_ROOT'] . '/restrictor/log/'.date("Ymd").'.log');
einfach vor @include_once('./page.restrictor.php'); ein ;)

Dann stimmt´s wieder :BD:

Gruß Gerhard

eazychecker

Hallo, da ich das gleiche Problem wie icke habe, habe ich es so gemacht wie GerhardSt es geschrieben hat, bei mir kommt dann im Adminmenü eine weiße Seite mit constant (log) not found!
Soll das so sein??

GerhardSt

Hi eazychecker :BD:

Wenn du in der admin/modules/restrictor_log.php auch die Änderungen gemacht hast, dann stimmt´s ;)
Lass dort einfach die Zeile
$logfile = './restrictor/log/'.date("Ymd").'.log'; dann funktioniert´s :smile:

Gruß Gerhard

gerdc

Hallo Gerhard,

vielen Dank fuer Deine Hilfe,

es ist tatsächlich so, dass die Zeile

define('PRES_LOG_FILE', ''. $_SERVER['DOCUMENT_ROOT'] . '/restrictor/log/'.date("Ymd").'.log');

direkt vor

@include_once('./page.restrictor.php'); in der mainfile.php eingebunden werden muss!

Damit entfällt die Abfrage der Definition und die Variablenzuweisung.

In der restrictor_log.php braucht demnach keine weitere Aenderung mehr durchgeführt zu werden.

Durch Deine Erklärung ist mir erst jetzt klar geworden, obwohl alles bestens lief, dass ich diese Zeile viel früher,
also FALSCH eingebunden hatte. Vielen Dank.

Gruss
Gerd
GCW

_icke_

OK, Danke.

Ich werde mir mich der Sache heute Abend mal annehmen.

Ich finde etwas merkwürdig, dass davon nichts in der Installationsanweisung des page_restrictor_log steht.

Ohne die oben erwähnten Änderungen macht doch das ganze Ding wenig Sinn, oder?

VG Marc

eazychecker

Hallo, habe es versucht wie beschrieben, es funzt net bei mir :red:
kann einer mal die files anhängen *liebfrag*

Andi

Moin :)

nur so als Gedanke:

define('PRES_LOG_FILE', ''. $_SERVER['DOCUMENT_ROOT'] . '/restrictor/log/'.date("Ymd").'.log');
Das funktioniert nur, solange sich pragmaMx nicht in einem Unterordner von DOCUMENT_ROOT befindet.

Besser ist das:
define('PRES_LOG_FILE', dirname(__FILE__) . '/restrictor/log/'.date("Ymd").'.log');


Noch besser ist es, ein paar tage zu warten.
Ich arbeite gerade an einer flexiblen Lösung, wo man später zur Konfiguration des neuen Pres, nicht mehr an der mainfile rumbasteln muss...
schön´s Grüssle, Andi

wob

Moin in die Runde, moin Andi.

Das hört sich gut an, dann warten wir doch lieber mal.

THX


Gruss
Ideen sind immer gut, nur diese Idee`n umsetzen ist eine andere frage :-)