Problem mit class.security.php nach der Installation.

Gesperrt
pauls
Beiträge: 35
Registriert: So 15. Nov 2009, 20:10
Kontaktdaten:

Problem mit class.security.php nach der Installation.

Beitrag von pauls »

Ich habe eine Unterdomainseite eingelegt und die Dateien von der anderen Unterdomainseite kopiert, dann auch Datenbank von der fertigen Seite exportiert. Nach der Installation von contenido, bekomme ich das:

Fatal error: Cannot redeclare class Contenido_Security in /home/www/web174/html/spielplatz/contenido/classes/class.security.php on line 42

Weiss jemand wie man das Problem lösen kann? Danke im voraus.
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Problem mit class.security.php nach der Installation.

Beitrag von xmurrix »

Morgen,

vermutlich wird bei dir irgendwo die Datei 'contenido/classes/class.security.php' mit require oder include eingebunden. Diese Datei sollte nur einmalig eingebunden werden (mit require_once oder include_once).

Gib doch mal in der 'contenido/classes/class.security.php' am Anfang, vor der Klassendeklaration folgende Zeile ein:

Code: Alles auswählen

echo '<pre>'; debug_print_backtrace();echo '</pre>';
Dann solltest du einen Hinweis darauf bekommen, von wo aus ein weiteres include/require stattfindet.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
pauls
Beiträge: 35
Registriert: So 15. Nov 2009, 20:10
Kontaktdaten:

Re: Problem mit class.security.php nach der Installation.

Beitrag von pauls »

Danke. Damit bekomme ich das:

#0 include_once() called at [/home/www/web174/html/utsh/contenido/index.php:39]

Wenn ich die Webseite an sich und nicht contenido öffne, bekomme ich:

Warning: include_once(classes/class.security.php) [function.include-once]: failed to open stream: No such file or directory in /home/www/web174/html/utsh/cms/front_content.php on line 76

Warning: include_once() [function.include]: Failed opening 'classes/class.security.php' for inclusion (include_path='/usr/local/php/lib/php/') in /home/www/web174/html/utsh/cms/front_content.php on line 76

Fatal error: Class 'Contenido_Security' not found in /home/www/web174/html/utsh/cms/front_content.php on line 77
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Problem mit class.security.php nach der Installation.

Beitrag von xmurrix »

Anscheinend fehlt da noch etwas, überprüfe folgende Dateien/Werte:

1.) Gibt es eine /home/www/web174/html/utsh/cms/config.php und hat die Variable $contenido_path den Wert "../contenido/". Ohne würde es wohl nicht funktionieren.

Code: Alles auswählen

// Relative path to contenido directory, for all inclusions, in most cases: "../contenido/"
$contenido_path = "../contenido/";
Diese Datei ist beim Contenido Package mit dabei, wird aber beim Erstellen eines neuen Mandaten generiert, sofern PHP Schreibrechte in das Mandantenverzeichnis (z. B. /home/www/web174/html/utsh/cms/) hat.

2.) Gibt es eine /home/www/web174/html/utsh/contenido/includes/config.php und sind die darin enthaltenen Pfadangaben korrekt? Alle Pfade sollten mit einem Slash (/) enden, Außnahmen ist $cfg['path']['frontend'], die hat kein Slash am Ende.
Diese Datei wird bei einer Contenidoinstallation generiert, sofern PHP Schreibrechte im Verzeichnis /home/www/web174/html/utsh/contenido/includes/ hat.

3.) Ist der Server-Pfad und die Web-Adresse des Mandanten korrekt (unter Administration -> Mandanten -> Mandantenname -> Eigenschaften) und enden beide mit einem Slash?

Aus der Fehlermeldung entnehme ich, dass in der front_content.php in Zeile 76 die class.security.php mit include_once(classes/class.security.php) eingebunden wird, das sollte aber include_once(../contenido/classes/class.security.php) sein, da die Variable $contenido_path vorher gesetzt werden sollte (siehe Punkt 1.)...

Gruß
xmurrix

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
pauls
Beiträge: 35
Registriert: So 15. Nov 2009, 20:10
Kontaktdaten:

Re: Problem mit class.security.php nach der Installation.

Beitrag von pauls »

Danke, die Vorschläge waren hilfreich um contenido öffnen zu können. Die Webseite an sich geht immer noch nicht, jetzt kommt ein neues Fehler:

Fatal error: Uncaught exception 'InvalidArgumentException' with message '$param[lang] must be set!' in /home/www/web174/html/utsh/contenido/classes/Url/Contenido_Url.class.php:137
Stack trace: #0 /home/www/web174/html/utsh/contenido/classes/Url/Contenido_Url.class.php(169): Contenido_Url->build(Array, true, Array)
#1 /home/www/web174/html/utsh/cms/front_content.php(296): Contenido_Url->buildRedirect(Array)
#2 {main} thrown in /home/www/web174/html/utsh/contenido/classes/Url/Contenido_Url.class.php on line 137

Anscheinend ist etwas mit der Sprache los.
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Problem mit class.security.php nach der Installation.

Beitrag von xmurrix »

Hallo pauls,

vermutlich wird bei dir irgendwo auf der Seite (in einem Modul oder Plugin) eine URL ohne den lang-Parameter generiert.

Es kann auch sein, dass die Sprache bei dir nicht gesetzt ist. Die ist in der globalen Variable $lang und sollte die ID der aktuellen Sprache haben.
Die ID der Sprache wird entweder als get-Parameter übergeben, oder aus dem Wert der Variable $load_lang gesetzt, der in der Datei cms/config.php definiert ist.

Hat z. B. Mandant A die Sprache deutsch und diese Sprache hat die ID 1, so ist das nicht die ID der Sprache deutsch des Mandanten B. Jeder Mandant hat eine andere Sprach-ID, auch wenn die Sprache die gleiche ist.

Ansonsten kannst du folgende Punkte überprüfen:

Ist es die Generierung der URL zu Fehlerseite in der front_content.php, so muss es folgendermaßen sein (ab ca. Zeile 294):

Code: Alles auswählen

// error page
$aParams = array (
    'client' => $client, 'idcat' => $errsite_idcat[$client], 'idart' => $errsite_idart[$client], 
    'lang' => $lang, 'error'=> '1'
);
$errsite = 'Location: ' . Contenido_Url::getInstance()->buildRedirect($aParams);
Handelt es sich um einen Artikelredirect in der front_content.php, so muss der Code dort folgendermaßen aussehen (ab ca. Zeile 940):

Code: Alles auswählen

            $oUrl = Contenido_Url::getInstance();
            if ($oUrl->isIdentifiableFrontContentUrl($redirect_url)) {
                // perform urlbuilding only for identified internal urls
                $aUrl = $oUrl->parse($redirect_url);
                if (!isset($aUrl['params']['lang'])) {
                    $aUrl['params']['lang'] = $lang;
                }
                $redirect_url = $oUrl->buildRedirect($aUrl['params']);
            }
Ist die Erstellung der URL in einem Modul/Plugin, so muss auch dort immer der Parameter lang übergeben werden.

Irgendwie habe ich das Gefühl, dass bei deiner Installation etwas schief gelaufen ist.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
pauls
Beiträge: 35
Registriert: So 15. Nov 2009, 20:10
Kontaktdaten:

Re: Problem mit class.security.php nach der Installation.

Beitrag von pauls »

Danke. Ich habe mein dummes Fehler gefunden: ich habe die nach der Installation erstellte config.php Datei in cms statt in contenido/includes kopiert.
Gesperrt