Seite 1 von 2

Auf session zugreifen und auslesen

Verfasst: Sa 17. Dez 2016, 20:27
von malsdgtac
Hallo,

Contenido 4.9.12 und PHP7

Irgendwie kapier ist es nicht, ich möchte für eine Merkliste auf $_SESSION zugreifen (schreiben und lesen) - aber irgendwie funktioniert es nicht. Mit Contenido 4.8.20 war das noch kein Problem. Was übersehe ich?

Vielen Dank für Eure Hilfe.

Re: Auf session zugreifen und auslesen

Verfasst: Sa 17. Dez 2016, 23:09
von homtata
Da mag sich einiges geändert haben. Guggst du hier:

http://forum.contenido.org/viewtopic.ph ... on#p169022
(da gings um Cookies, aber es stehen auch ein paar Takte zum Session-Handling drin)

sowie hier in der Api-Doku, wie das mit dem register funktioniert, um globale Session-Variablen zu kriegen:
http://api.contenido.org/latest/class-c ... #_register

LG Viktor

Re: Auf session zugreifen und auslesen

Verfasst: Mo 19. Dez 2016, 12:57
von rethus
Was genau hast du bis jetzt versucht?
Du musst da eine genauere Fehlerbeschreibung liefern...
irgendwie funktioniert es nicht. Mit Contenido 4.8.20 war das noch kein Problem :?: :?: :?:
Mal ehrlich:
Welche Note (1-6) für Informationsgehalt würdest du deinem ersten Posting hier in dem Thread geben ?
(Oben bei deiner Fehlerbeschreibung fehlt nur noch eine Aussage um ein Klassiker zu sein: "Ich hab nichts gemacht!" :lol: )

Re: Auf session zugreifen und auslesen

Verfasst: Mo 19. Dez 2016, 13:10
von malsdgtac
Jaja, schon verstanden. Sorry.

Ich habe ein recht umfassendes Projekte von 4.8.20 auf 4.9 umgestellt - vorher auf einem Testaccount überprüft, gedacht es funktioniert alles - umgestellt und die Probleme sind immer größer geworden. In meinem Streß hat irgendwie gar nichts mehr funktioniert, da ist auch der Post entstanden. Ich habe jetzt meine Backups von 4.8.20 eingespielt, damit die Seite wieder läuft.

Ich werde das Projekt nun erst im Jänner wieder aufgreifen, dann werde ich es nochmals strukturiert angehen - schauen was ich schon probiert habe ;-) was genau der Code (vorher und nachher) war und einen informativeren Post erstellen ;-) Und ja, falls ich selber drauf komme, werde ich hier auch meine Lösung für andere posten.

Danke aber trotzdem für eure Antworten ;-)

Re: Auf session zugreifen und auslesen

Verfasst: Mo 19. Dez 2016, 17:17
von rethus
smac hat geschrieben: In meinem Streß hat irgendwie gar nichts mehr funktioniert, da ist auch der Post entstanden. Ich habe jetzt meine Backups von 4.8.20 eingespielt, damit die Seite wieder läuft.
Ja, kennen wir alle. Davon kann sich keiner freisprechen.
Meld dich im Januar einfach wieder, und wir stehen das gemeinsam durch :wink:

Re: Auf session zugreifen und auslesen

Verfasst: Mo 30. Jan 2017, 17:54
von malsdgtac
Hallo,

ich habe mich gerade länger dem Thema gewidmet, untern Strich ist es ganz simple. Falls jemand anders es benötigt:

Sessionvariable setzen:

Code: Alles auswählen

$session = cRegistry::getSession();
$meinvariablenname = "meinvariablenwert";
$session->register('meinvariablenname');
Sessionvariable auslesen:

Code: Alles auswählen

$session = cRegistry::getSession();
echo $meinvariablenname;
Für den Fall dass man in der Variable ein Array speichern möchte, und noch nicht weiß ob diese Variable bereits vorhanden ist:
Sessionvariable setzen:

Code: Alles auswählen

$session = cRegistry::getSession();
if ($session->isRegistered('meinvariablenname')) {
    $meinvariablenname[] = "meinvariablenwert";
} else {
    $meinvariablenname = array("meinvariablenwert");
    $session->register('meinvariablenname');
}
Sessionvariable auslesen:

Code: Alles auswählen

$session = cRegistry::getSession();
print_r($meinvariablenname);

Re: Auf session zugreifen und auslesen

Verfasst: Di 31. Jan 2017, 22:01
von malsdgtac
So - und falls es bei jemanden nicht und nicht funktionieren will (wie gerade schon wieder bei mir) - hilft wahrscheinlich der Thread weiter: http://forum.contenido.org/viewtopic.ph ... on#p170611

Dann funktioniert es auch ;-)

Re: Auf session zugreifen und auslesen

Verfasst: Mi 1. Feb 2017, 11:30
von Faar
Lag es am $path ?

Re: Auf session zugreifen und auslesen

Verfasst: Mi 1. Feb 2017, 13:32
von malsdgtac
Ja, es lag am $path.

Ist natürlich nicht so schön, da am Core umändern zu müssen.

Re: Auf session zugreifen und auslesen

Verfasst: Mi 1. Feb 2017, 16:01
von Faar
Interessant ist ja, dass in der PHP-Klasse von 4.9.0 noch als Pfad "/" eingetragen ist und in der Version 4.9.11 dieses $path.
http://api.contenido.org/con490/source- ... on.html#77
http://api.contenido.org/con4911/source ... on.html#89
Im letzteren steckt auch "http" direkt im Code eingetragen drin, das dürfte bei "https" Probleme bereiten.

Code: Alles auswählen

 79:             $start = strpos($url, '://');
 80:             if (false === $start) {
 81:                 $url = 'http://' . $url;
 82:                 $start = strpos($url, '://');
 83:             }
 84: 
 85:             // url of contenido folder with hostname
 86:             $path = substr($url, $start + 3);
 87: 
 88:             $start = strpos($path, '/');
Was spricht hier gegen http://php.net/manual/de/function.parse-url.php ? :?
Lustig ist in der Version 4.9.0 ja dieses hier:

Code: Alles auswählen

77:             $url = parse_url($url);
Da wurde das parse_url() zwar schon angedacht aber nicht ausprogrammiert.
Und daraus entstand dann dieses Konstrukt mit "http", strpos() und substr() ... :roll:

Re: Auf session zugreifen und auslesen

Verfasst: Do 2. Feb 2017, 09:33
von frederic.schneider_4fb
Wir haben das damals aus Sicherheitsgründen umgebaut. Ich kann deshalb nur davon abraten, das wieder umzustellen, auch wenn es für Eure Probleme "smarter" wirkt. Die Problematiken mit den Pfaden sollten in der aktuellen Version eigentlich behoben sein?!?

Re: Auf session zugreifen und auslesen

Verfasst: Do 2. Feb 2017, 10:35
von malsdgtac
Hallo frederic,

also in der Version 4.9.12 (nach einem Upgrade) hat das interne Sessionhandling nicht funktioniert. Erst mit der Änderung in der contenido/classes/class.session.php

Code: Alles auswählen

            if (false !== $start) {
                $path = substr($path, $start);
            session_set_cookie_params(0, '/');
            } else {
                // fall back to entire domain if no path can be computed
                session_set_cookie_params(0, '/');
            }
hat es funtkioniert.

Re: Auf session zugreifen und auslesen

Verfasst: Do 2. Feb 2017, 11:55
von frederic.schneider_4fb
Ich schaue mir das kommende Woche nochmal an (versprochen). Ich kenne die Problematik ja. Dachte aber, das wäre inzwischen zuverlässig behoben

Re: Auf session zugreifen und auslesen

Verfasst: Do 2. Feb 2017, 12:00
von malsdgtac
Find ich super! Danke

Re: Auf session zugreifen und auslesen

Verfasst: Do 2. Feb 2017, 15:04
von Faar
frederic.schneider_4fb hat geschrieben:Wir haben das damals aus Sicherheitsgründen umgebaut. Ich kann deshalb nur davon abraten, das wieder umzustellen, ...
Und wie harmoniert das fest eingeschriebene http mit https ?
:wink: