Fehlermeldung in $pth

General questions about CMSimple
Post Reply
cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Fehlermeldung in $pth

Post by cmss » Sun Nov 19, 2017 2:27 pm

Ich habe eine seltsame Fehlermeldung : Etwas wie

<script type="text/javascript" src="<?php echo $pth['folder']['template']?>js/index.js"></script>
(<- ich habe 2 sm-smart Templates fertig, die ich falls gefragt veröffentlichen kann)
im Templateende geht problemlos , aber

if (file_exists( $pth['folder']['content'].'pagedata.php' )) {

liefert im selben CMS 'Undefined variable: pth'

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Fehlermeldung in $pth

Post by cmb » Sun Nov 19, 2017 2:43 pm

cmss wrote:im Templateende geht problemlos , aber

if (file_exists( $pth['folder']['content'].'pagedata.php' )) {

liefert im selben CMS 'Undefined variable: pth'
$pth ist eine globale Variable. Wenn diese in einer Funktion verwendet werden soll, dann muss sie als global "deklariert" werden:

Code: Select all

global $pth;
Oder man schreibt statt $pth eben:

Code: Select all

$GLOBALS['pth']
Christoph M. Becker – Plugins for CMSimple_XH

cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Re: Fehlermeldung in $pth

Post by cmss » Sun Nov 19, 2017 8:17 pm

Ja das geht auch - ich versuche gerade (nur für privat) das ts_backup von nmud umzufunktionieren, das eine alte Funktion hat

if ((!function_exists('sv')) || eregi($pth['folder']['plugins'].$plugin.'/admin.php', sv('PHP_SELF')))die('Access denied');

ersetzt duch

if ((!function_exists('sv')) || preg_match($pth['folder']['plugins'].$plugin.'/admin.php', sv('PHP_SELF'))) die('Access denied');

bekomme ich leider : preg_match(): Unknown modifier 'p' . Ich möchte letztendlich das ganze CMS im Web zippen

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Fehlermeldung in $pth

Post by cmb » Sun Nov 19, 2017 11:28 pm

cmss wrote:Ja das geht auch - ich versuche gerade (nur für privat) das ts_backup von nmud umzufunktionieren, das eine alte Funktion hat

if ((!function_exists('sv')) || eregi($pth['folder']['plugins'].$plugin.'/admin.php', sv('PHP_SELF')))die('Access denied');

ersetzt duch

if ((!function_exists('sv')) || preg_match($pth['folder']['plugins'].$plugin.'/admin.php', sv('PHP_SELF'))) die('Access denied');

bekomme ich leider : preg_match(): Unknown modifier 'p' .
Abgesehen davon, dass der ursprüngliche reguläre Ausdruck in eregi() nicht ganz das bewirkt, was er vermutlich soll, muss der reguläre Ausdruck bei preg_*() immer in frei wählbare Zeichen eingeschlossen werden. Außerdem müsste die case-insensivity explizit angegeben werden, also etwa:

Code: Select all

if ((!function_exists('sv')) || preg_match('#'.$pth['folder']['plugins'].$plugin.'/admin.php#i', sv('PHP_SELF'))) die('Access denied');
Ich halte aber die Abfrage auf function_exists('sv') schon für völlig ausreichend, so dass man schreiben könnte:

Code: Select all

if (!function_exists('sv')) die('Access denied');
cmss wrote:Ich möchte letztendlich das ganze CMS im Web zippen
Dafür könnte die in viewtopic.php?f=16&t=12191 gepostete Variante auch eine interessante Alternative darstellen.
Christoph M. Becker – Plugins for CMSimple_XH

cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Re: Fehlermeldung in $pth

Post by cmss » Mon Nov 20, 2017 10:02 pm

Obiges funktioniert - aber es tauchen immer neue Fehler auf - obwohl es läuft.
Ich sehe jetzt, dass auch andere dazulernen mussten. ge-webdesign bietet das modifizierte Plugin auch nicht mehr an.

2 Beispiele $zipdownload = basename($_SERVER['__FILE__']); --> Undefined index: __FILE__ (steht auch nicht im PHP Handbuch)
$start = $_POST['downloadnow']; --> Undefined index: downloadnow (downloadnow steht erst im Formular) usw.

Ich werde mich wohl mehr mit dem obigen Link befassen. Es drängt ja nicht. Ich will Herrn Schuster auch nicht kleiner machen als er ist.
Last edited by cmss on Mon Nov 20, 2017 10:44 pm, edited 1 time in total.

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: Fehlermeldung in $pth

Post by Holger » Mon Nov 20, 2017 10:16 pm

cmss wrote: Undefined index: __FILE__ (steht auch nicht im PHP Handbuch)
Siehe: http://php.net/manual/en/language.const ... efined.php

cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Re: Fehlermeldung in $pth

Post by cmss » Mon Nov 20, 2017 10:44 pm

Ja sicher , aber nicht

$_SERVER['__FILE__'] https://secure.php.net/manual/de/reserv ... server.php

sonst käme ja keine Fehlermeldung - wohl $_SERVER['REQUEST_URI']

und $_SERVER['PHP_SELF'] can include arbitrary user input.....

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: Fehlermeldung in $pth

Post by Holger » Mon Nov 20, 2017 10:52 pm

cmss wrote:Ja sicher , aber nicht

$_SERVER['__FILE__']
Ja, das ist Quatsch. Es sollte auch nur ein Hinweis zu den magischen Konstanten sein.
Wo stand das denn drin? (weil Du schreibst "obiges funktioniert") :?

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Fehlermeldung in $pth

Post by cmb » Mon Nov 20, 2017 11:56 pm

Holger wrote:Wo stand das denn drin? (weil Du schreibst "obiges funktioniert") :?
Es geht wohl um ts_backup…
Christoph M. Becker – Plugins for CMSimple_XH

cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Re: Fehlermeldung in $pth

Post by cmss » Tue Nov 21, 2017 4:39 pm

Es geht um das ts_backup Xh von ge-webdesign, das (7 Mails höher ) zahlreiche Fehler meldet aber funktioniert.

Für ein Gesamt-Zip ist es vom Aufbau her nicht zu gebrauchen.

Ich will zuminest noch htaccess, functions.php und userfiles-dir und templates-dir absichern und bekam von Herrn Becker einen Link(s.o).viewtopic.php?f=16&t=12191

Zu der function fullBackup() müsste man mal ein Plugin machen, das das Herunterladen ermöglicht.

Post Reply