Es können keine Werte in die Session geschrieben werden

Fragen zum Erstellen von Templates für webEdition.
Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Es können keine Werte in die Session geschrieben werden

Beitragvon Luigii » Mi 14. Jul 2021, 13:25

Ich habe sowohl per PHP versucht etwas in die Session zu schreiben, als auch per setVar. Beides funktioniert nicht.
Ein einfaches
$_SESSION["bigtext"]=1;
bleibt in der Session nicht erhalten.
Ich habe dann versucht
<we:setVar to="session" nameto="bigtext" value="1" />
Das führt zu einem Fehler, die Ausgabe der Seite wird einfach abgebrochen.

Folgende Fehlermeldung:
Argument 1 passed to we_weTag_tag::setVarArray() must be of the type array, null given, called in /…/webEdition/we/classes/weTag/we_weTag_tag.class.php on line 169

Der Tag <we:sessionStart /> steht oben in der Vorlage und Seite ist dynamisch gespeichert.

Im ersten Fall scheint es in eine andere Session geschrieben zu werden. Auf derselben Seite kann ich die Sessionvariable noch ausgeben, aber auf der nächten nicht mehr.
Im zweiten Fall gibt es einen Fehler, keine Anhnung, ob das miteinander zutun hat.

Product Version 9.0.8
PHP 7.4.19
MariaDB 10.05.11

Nachtrag:
Ich habe nun den Tag <we:sessionStart /> ausgetauscht gegen <?php session_start(); ?> und die Probleme sind verschwunden. Ist das anders problematisch, sollte man das lieber nicht so machen?
Was genau macht denn der Tag <we:sessionStart />? Was könnte da schief laufen?
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon NilSole » Mi 14. Jul 2021, 20:36

1. we:setVar to session: dies ist ein Bug. Das werden wir fixen.

2. Folgender Code speichert korrekt bei mir:

Code: Alles auswählen

<we:sessionStart/>
<!DOCTYPE HTML>
<html dir="ltr" lang='<we:pageLanguage type="language" />'>
<head>
	<we:title></we:title>
	<we:description></we:description>
	<we:keywords></we:keywords>
	<we:charset defined="UTF-8">UTF-8</we:charset>
</head>
	<body>
		
	<?php
	p_r($_SESSION);
	$_SESSION['test'] = 'test';
	?>
	</body>
</html>

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon Luigii » Mi 14. Jul 2021, 22:52

Ah, gut zu wissen mit dem Bug, danke.

Dein Code speichert eben bei meine Installation bei all-inkl.de in der beschriebenen Konfiguration nicht.
Es sei den ich benutze <?php session_start(); ?>

Bei einem anderen Hoster hab eich dasselbe probiert mit <we:sessionStart /> und da funktioniert es.
Deshalb meine Farge, was erzeugt denn genau der Tag <we:sessionStart />?
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

ThomasGoebe

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon ThomasGoebe » Do 15. Jul 2021, 00:31

Luigii hat geschrieben: Mi 14. Jul 2021, 22:52 Deshalb meine Farge, was erzeugt denn genau der Tag <we:sessionStart />?
Oh,eine Menge. Hier findest Du den Code dazu, hilft Dir das weiter zur Einschätzung?
https://sourceforge.net/p/webedition/so ... .class.php

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon NilSole » Do 15. Jul 2021, 01:37

Insbesondere ruft we:sessionStart eben bei Bedarf auch die PHP Funktion session_start() auf. Daran kann es also eigentlich nicht liegen…

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon Luigii » Do 15. Jul 2021, 08:49

ja, wenn ich mir die Klasse so ansehe und mal das weglasse, was mit Kundenverwaltung und Benutzer-Login zutun hat, bleibt das hier übrig:

Code: Alles auswählen

if(!isset($_SESSION)){
	we_base_WE::$session = new we_base_sessionHandler();
}
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon mokraemer » Do 15. Jul 2021, 12:00

ja, das kommt hin.
Ich würde bei dir ggfs. auch mal kontrollieren ob was im Errorlog auftaucht (u.a. sowas wie headers already sent)
webEdition-Kern-Entwickler

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon Luigii » Do 15. Jul 2021, 12:46

Also ich bekomme ein
Undefined variable $_SESSION
wenn ich <we:sessionStart /> benutze. Das sieht für mich so aus als würde die Session einfach nicht gestarttet werden.
Das sie mit <?php session_start(); ?> aber korrekt gestartet wird, vermute ich mal, dass der WE-Tag hier noch mehr macht, was dann schif läuft, viellicht wird noch angegeben, wo es hingeschrieben wird und da gibt es ein Rechteproblem oder irgendeine anderre Anforderung, die nicht erfüllt ist.
Daher ja meine Frage, was der Tag denn ausgibt, wenn einfach nur die Session gestartet wird, ohne Benutzer-Login oder Kundendaten.
Also was genau macht

Code: Alles auswählen

we_base_WE::$session = new we_base_sessionHandler();
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

ThomasGoebe

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon ThomasGoebe » Do 15. Jul 2021, 15:25

Luigii hat geschrieben: Do 15. Jul 2021, 12:46 Daher ja meine Frage, was der Tag denn ausgibt, wenn einfach nur die Session gestartet wird, ohne Benutzer-Login oder Kundendaten.
Also was genau macht

Code: Alles auswählen

we_base_WE::$session = new we_base_sessionHandler();
Das siehst Du hier: https://sourceforge.net/p/webedition/so ... .class.php

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon blickfang » Mi 21. Jul 2021, 09:57

Hi,
hab gerade auch einen allinkl Server in der Hand und das gleiche Problem entdeckt => vermute allerdings dass das nichts mit dem Server und auch nichts mit dem we-Tag sessionStart zu tun hat, sondern (du setzt eine WE Version 9 ein?), webEdition die Sessions in der Dtaenbank verwalten möchte, das aber nicht so wirklich klappt.

In den Einstellungen => Allgemein gibts eigentilch dazu eine Option, ob die Sessions in der Datenbank verwaltet werden sollen oder nicht. Die Option kann aber nicht verändert werden, weil das Select dazu in der Oberfläche bei mir nicht angezeigt wird. Sollte diese Einstellung in der tblPrefs gespeichert werden (nehme ich mal an), dann steht da bei mir auch nichts. Wenn nun nichts drin steht, nehme ich weiter an, dass webEdition einfach sagt, ich mach das mal in der Datenbank, denn in der tblSessions steht fleißig was drin. Was da alles dazwischen passiert, hab ich mir nicht angesehen...

Quickfix ist also session_start() per php und nachaltiger ein Taslk in qa.webedition.org zu diesem Thema ;-)
VG, Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Es können keine Werte in die Session geschrieben werden

Beitragvon mokraemer » Mi 21. Jul 2021, 12:23

Sessions werden ab WE 9 NUR noch in der DB angelegt. Und das es funktioniert, sieht man ja auch im Backend - würde es nicht gehen, gäbe es kein Backend und man könnte mit WE nicht arbeiten.
webEdition-Kern-Entwickler


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 9 Gäste