Modul-Input: Bestimmte PHP Befehle deaktiviert?

Gesperrt
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Modul-Input: Bestimmte PHP Befehle deaktiviert?

Beitrag von stese » Sa 7. Jan 2006, 12:13

hi,

wenn ich die funktion "uplRecursiveDirectoryList()" im moduliinput benutzen will kommt statt der normalen template-konfigurations-seite nur der pfad zum template was nicht gefunden wird.

verwende ich die funktion uplRecursiveDirectoryList dagegen im moduloutput funktioniert alles reibungslos ... kann mir jemand sagen wie ich im input auf das filesystem zugreifen kann, da es an der php funktion opendir() aneckt?

folgendes script funktioniert im output einwandfrei - im input geht nix mehr:

Code: Alles auswählen

<?php 
cInclude("classes", "class.treeitem.php");
cInclude("includes", "functions.upl.php");

global $cfgClient, $client;

if (!function_exists("getUploadPathInfos") ) {

   function getUploadPathInfos ( &$arr_dirs, $arr_tree ) {
      global $client, $cfgClient;

      if ( is_array($arr_tree) ) {
         foreach ($arr_tree as $a_file) {
            $i = count($arr_dirs) + 1;
         
            $arr_dirs[$i]["name"] = $a_file->name;
            $arr_dirs[$i]["depth"] = $a_file->custom["level"] - 1;
            $arr_dirs[$i]["pathstring"] = str_replace($cfgClient[$client]['upl']['path'], "", $a_file->id);
         
         
            $cnt = $arr_dirs[$i]["depth"];
            $arr_dirs[$i]["indent"] = '';
   
            for ($z = 0; $z < $cnt; $z ++) {
               # 3 blanks for every level
               $arr_dirs[$i]["indent"] .= "&nbsp;&nbsp;&nbsp;";
            }  

            if ( count($a_file->subitems) > 0 ) {
               getUploadPathInfos($arr_dirs, $a_file->subitems );
            }
   
         }
      }

   }
}

$dllist_rootTreeItem = new TreeItem;
$dllist_rootTreeItem->custom["level"] = 0;

uplRecursiveDirectoryList($cfgClient[$client]["upl"]["path"], $dllist_rootTreeItem, 2);

$dllist_objects = Array ();
$dllist_rootTreeItem->traverse($dllist_objects);
unset ($dllist_objects[0]);

$arr_dirs = array();
getUploadPathInfos($arr_dirs, $dllist_objects );

// add basedir
array_unshift ($arr_dirs, array("name" => str_replace("/","", $cfgClient[$client]["upload"]), "depth" => 0, "pathstring" => "", "indent" => "" ));

$str_predefined = trim("CMS_VALUE[2]");
print mi18n("Verzeichnis für Downloads auswählen") . ":\n<br>";
print '<select name="CMS_VAR[2]">' . "\n";

// output of all found directories
foreach ( $arr_dirs  as $arr_dir ) {
   $str_selected = "";
   if ($str_predefined == $arr_dir["pathstring"]) $str_selected = ' selected="selected"';
   print '<option value="' . $arr_dir["pathstring"] . '">' . $arr_dir["indent"] . $arr_dir["name"] . '</option>' . "\n";
}
print '</select>' . "\n";

?>

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » So 8. Jan 2006, 15:49

hab momentan nichts zu testen da...

aber was meinst du mit "aneckt" ?

es wäre möglich das du mittel chdir das arbeitsverzeichniss wechseln müsstest...
*** make your own tools (wishlist :: thx)

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » So 8. Jan 2006, 15:56

mit aneckt meine ich, dass sobald ich einen befehl nutze um auf das dateisystem zuzugreifen (z.b. opendir() ), die bearbeitung des input abgebrochen wird - also danach statt des ausgeführten codes nur noch der name des html-templates für die templatekonfiguration angezeigt wird. es scheint dass die input bereiche in einer art sandbox ausgeführt werden.

das mit chdir probiere ich gleich mal

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » So 8. Jan 2006, 16:02

und im errorlog steht nichts ?
*** make your own tools (wishlist :: thx)

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » So 8. Jan 2006, 16:15

nein, error_log ist leer ...

und chdir hat auch nix gebracht ... sobald ich allein den chdir befehl aufrufe bricht er wieder ab

also allein folgende zeile im input lässt die templatekonfiguration abbrechen:

Code: Alles auswählen

global $cfgClient, $client;

chdir ( $cfgClient[$client]["upl"]["path"] );

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » So 8. Jan 2006, 16:22

ähm ich hab zwar keine 4.6.x version momentan im einsatz, aber bei einer 4.5.2 geht das ohne probleme...

welche contenido version ?
server umgebung ?
welche php version ?
*** make your own tools (wishlist :: thx)

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » So 8. Jan 2006, 16:26

contenido 4.6.4
serverinfos

ich teste das ganze jetzt mal in einer cleanen contenido version, da ich in meiner diverse bugfixes und security fixes aus dem forum hier eingebaut habe ...

prinzipiell funktioniert das auch alles wunderbar im output bereich - nur der input macht probleme.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » So 8. Jan 2006, 16:33

das könnte aber auch mit der php version 4.4.1 zusammen hängen...
da wurden wieder einige sachen betreffend safe mode geändert...
*** make your own tools (wishlist :: thx)

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » So 8. Jan 2006, 16:49

ok das kann ich momentan leider nicht testen, da ich momentan nur 4.4.1er phps laufen habe ...

aber bei der cleanen installation ist es auf jeden fall genauso.

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » So 8. Jan 2006, 17:02

stese hat geschrieben:ok das kann ich momentan leider nicht testen, da ich momentan nur 4.4.1er phps laufen habe ...

aber bei der cleanen installation ist es auf jeden fall genauso.
auf der insel läuft
Php version 4.3.4
MySQL version 4.0.18

soll ich oder willst selber dran? pm me
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » So 8. Jan 2006, 17:30

danke, scheint also an der php version zu liegen ...
ok dann eben nicht

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 10. Jan 2006, 10:32

ich häng das mit einem anderen posting zusammen,
da es sich vermutlich um das selbe problem handelt...
-> http://contenido.org/forum/viewtopic.php?t=11182
*** make your own tools (wishlist :: thx)

Gesperrt