Seite 1 von 2

[CON-394] Wird geprüft: Fehler nach PHP Sicherheitsupdate...

Verfasst: Do 15. Okt 2009, 17:52
von MakD42
Hallo ersteinmal.

Ich habe ein Problem. Ich habe Contenido Vers. 4.8.12 installiert und fertig gestellt. Es funktionierte ganz hervorragend! Dann hat der Provider ein Sicherheitsupdate der PHP (5er) Version gemacht.
Danach bekomme ich folgende Fehlermeldung:

Notice: Can't add /home/www/XXX/html/con/pear/ to include_path in /home/www/XXX/html/con/contenido/includes/api/functions.api.general.php on line 117

Ich kann mich nicht mehr ins Backend einloggen! Auf die Frage beim Provider, ob er die alte Version des PHP wieder herstellen könnte verneinte er dies. Er bot mir allerdings an, das ich die Datei die nicht inkludiert werden kann von ihm händisch eingebaut werden könne!

Welche Dateien müssten das den sein! > und wohin?

Ich freue mich auf auf eure Nachrichten.

Grüße aus Marburg

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Do 15. Okt 2009, 18:14
von BagHira
Servus nach Marburg,

ich hab folgendes gefunden: http://forum.contenido.org/viewtopic.ph ... th#p127615

Besonders hierbei:
Entweder werden die Berechtigungen hierfür vergeben oderdu musst einen Hack in der functions.api.general.php machen

Hoffe, das hilft dir... :?:

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: So 18. Okt 2009, 15:34
von MakD42
Hy nochmal.

Welche Berechtigungen muß ich da genau setzten lassen ?
oder
welchen Hack müsste ich in die functions.api.general.php einpflegen?

Danke und :lol: auch deine Nachricht

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Di 27. Okt 2009, 21:38
von xmurrix
Hallo MackD42,

du hast nicht die Möglichkeit, den include_path zu ändern.
Am Besten du änderst die Funktion contenido_include in

Code: Alles auswählen

function contenido_include ($where, $what, $force = false, $returnpath = false)
{
    global $client, $cfg, $cfgClient;

    /* Sanity check for $what */
    $what = trim($what);
    $where = strtolower($where);
    $error = false;

    switch ($where)
    {
        case "frontend":
            $include = $cfgClient[$client]["path"]["frontend"] . $what;
            break;
        case "wysiwyg":
            $include = $cfg['path']['wysiwyg'] . $what;
            break;
        case "all_wysiwyg":
            $include = $cfg['path']['all_wysiwyg'] . $what;
            break;
        case "conlib":
        case "phplib":
            $include = $cfg['path']['phplib'] . $what;
            break;
        case "pear":
            $include = $cfg['path']['pear'] . $what;
            
            break;
        default:
            $include = $cfg['path']['contenido'] . $cfg['path'][$where] . $what;
            break;
    }

    if (!file_exists($include) || preg_match("#^\.\./#",$what)) {
        $error = true;
    }

    if ($returnpath) {
        if ($foundinpath) {
            $include = $foundinpath . DIRECTORY_SEPARATOR . $include;
        }

        if (!$error) {
            return $include;
        } else {
            return false;
        }
    }

    if ($error) {
        trigger_error("Error: Can't include $include", E_USER_ERROR);
        return;
    }

    if ($force == true) {
        include($include);
    } else {
        include_once($include);
    }
}
Mach vorher sicherheitshalber eine Kopie!

Das ist zwar ein Eingriff in den Contenido Core, sollte dir aber bei deinem Problem helfen.

Gruß
xmurrix

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Mi 28. Okt 2009, 01:13
von Oldperl
:arrow: Verschoben nach Bugs

Die Funktion sollte nochmal darauf geprüft werden, ob es wirklich notwendig ist einen Fehler zu triggern, wenn ein ini_set nicht möglich ist.
Eventuell gibt es eine alternative Lösung. Ein include wird ja trotzdem durchgeführt, wobei zu prüfen ist, ob ein hinzufügen des PEAR-Verzeichnisses zum Path notwendig ist.

Gruß aus Franken

Ortwin

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Mi 28. Okt 2009, 01:34
von xmurrix
Oldperl hat geschrieben:...
Die Funktion sollte nochmal darauf geprüft werden, ob es wirklich notwendig ist einen Fehler zu triggern, wenn ein ini_set nicht möglich ist.
Eventuell gibt es eine alternative Lösung. Ein include wird ja trotzdem durchgeführt, wobei zu prüfen ist, ob ein hinzufügen des PEAR-Verzeichnisses zum Path notwendig ist...
Hallo,

es gibt einige PEAR Sourcen, die mit

Code: Alles auswählen

require_once 'PEAR.php';
einbinden, auch wenn diese Sourcen in einem Unterverzeichnis der PEAR-Installation liegen. Bei Contenido sind es auch einige Sourcen, wie z. B. pear/Cache/Lite.php, pear/PEAR/Config.php, pear/Spreadsheet/Excel/Writer.php, usw.. Diese und andere PEAR-Sourcen werden in Contenido nicht direkt verwendet. Daher gibt es vermutlich vorerst keine Probleme, wenn das PEAR-Verzeichnis nicht in include_path aufgenommen wird.

Besser wäre es schon, wenn man das PEAR Verzeichnis in den include_path mit aufnimmt. Ansonsten werden Packages mit ausgeliefert, die man so nicht einsetzen kann.

Gruß
xmurrix

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Mi 28. Okt 2009, 19:42
von MakD42
hallo xmurrix

vielen Dank für die "Zeilen". Entschuldige bitte - du hast so viel geändert, dass ich mir nicht sicher bin von wo bis wohin ich löschen und einsetzten muß.
...könntest Du... wärst du bitte so freundlich ..das zusammen zu basteln? (Ich kann eher Grafiken und Konzepte den PHP)

Kann dir dafür mal grafisch zur Seite stehen. Das wäre zauberhaft.

Grüße aus dem kalten Marburg

Matthias

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Mi 28. Okt 2009, 22:29
von xmurrix
Hallo MakD42,

habe die geänderte Datei angehängt. Du brauchst die vorhandene functions.api.general.php in contenido/includes/api/functions.api.general.php gegen die Version von hier ersetzen.

Vermutlich wiest du nicht alle vorhandenen PEAR Sourcen verwenden können. Aber die Sourcen, die von Contenido verwendet werden, sollte ohne Probleme funktionieren.

Gruß
xmurrix

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Do 29. Okt 2009, 13:13
von MakD42
Hy xmurrix,

vielen - herzlichen - DANK. Eingebaut und...ich kann mich wieder einloggen.
Hatte einem sehr guten Freund der mich bei meiner Wohnung unterstützt
hatte die Page eingerichtet und dann kahm ich nicht mehr rein um sie zu
pflegen.

Ich habe zwar ne menge Fehlermeldungen wenn ich mich einlogge - aber
ich kann die Page offenkundig wieder Pflegen.
Soll ich die Meldungen Ignorieren?

Gruß aus Nebel-Marburg.

Matthias

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Do 29. Okt 2009, 13:32
von xmurrix
MakD42 hat geschrieben:...
Ich habe zwar ne menge Fehlermeldungen wenn ich mich einlogge - aber
ich kann die Page offenkundig wieder Pflegen.
Soll ich die Meldungen Ignorieren?...
Hmm,

ich habe das natürlich nicht vorher durchgetestet, es kann sein, dass es hier und da zwickt.
Was hast du denn genau für Fehlermeldungen, kannst die Meldungen mal hier posten?

Das Problem ist, dass einige PEAR-Sourcen sich gegenseitig includieren. Der Pfad in den include-/require Anweisungen ist so aufgebaut, dass davon ausgegangen wird, dass das PEAR Verzeichnis im include_path liegt.

Gruß
xmurrix

Offtopic: Warum ist hier BBCode ausgeschaltet?

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Do 29. Okt 2009, 14:18
von xmurrix
MakD42 hat geschrieben:...Soll ich die Meldungen Ignorieren?...
Fehlermeldungen sollte man immer ernst nehmen?
P.S.: Das ist eine Testantwort gewesen...

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Do 29. Okt 2009, 17:06
von MakD42
Hallo Murrix,

hier die Fehlermeldungen:
Warning: fopen(/home/www/web466/html/con/contenido/cache/vendor.xml) [function.fopen]: failed to open stream: Keine Berechtigung in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 544

Warning: ftruncate(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 545

Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 546

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 547

Warning: fopen(/home/www/web466/html/con/contenido/cache/rss_de.xml) [function.fopen]: failed to open stream: Keine Berechtigung in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 544

Warning: ftruncate(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 545

Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 546

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 547

Warning: fopen(/home/www/web466/html/con/contenido/cache/rss_en.xml) [function.fopen]: failed to open stream: Keine Berechtigung in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 544

Warning: ftruncate(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 545

Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 546

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 547

Warning: fopen(/home/www/web466/html/con/contenido/cache/update.txt) [function.fopen]: failed to open stream: Keine Berechtigung in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 544

Warning: ftruncate(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 545

Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 546

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web466/html/con/contenido/classes/class.update.notifier.php on line 547

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Do 29. Okt 2009, 17:17
von xmurrix
Das sind keine Fehlermeldungen, die von der Änderung der includes von PEAR-Sourcen herrühren - Ist schon mal positiv...

PHP hat keine Lese-/Schreibrechte im Verzeichnis /home/www/web466/html/con/contenido/cache/. Da musst du die Rechte entsprechend setzen. Am einfachsten geht es mit einem FTP-Programm, mit setzen auf 777. Das ist zwar nicht ideal, weil dann jeder Zugriff auf die Verzeichnisse hat. Die andere Variante ist eine restriktivere Berechtigung (z. b. 660), die du dann solange hochschraubst, bis PHP da Lesen/Schreiben darf...

Für welche Verzeichnisse die Berechtigungen zu setzen sind, steht in der README.txt unter Punkt 2.2. Hast du die Readme gelesen?

Gruß
xmurrix

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: Do 29. Okt 2009, 17:24
von MakD42
Ja - hab ich gelesen. Ich kontroliere es aber gleich noch mal nachdem ich meine Tochter zum schwimmen gebracht habe.

Merci vielmals - ich gebe feedback wenn ich nachgeschaut habe.

Grüße

Matthias

Re: Fehler nach PHP Sicherheitsupdate vom Provider

Verfasst: So 1. Nov 2009, 13:58
von MakD42
Hallo nocheinmal.

Ich habe alle Verzeichnisse kontrolliert. Die Berechtigung wie in der Anleitung sind absolut korrekt gesetzt. (Sowohl im Verzeichnist contenido wie auch cms)
Was kann es noch für Ursachen haben mit den Fehlermeldungen?

Grüße aus Nebel-Marburg.