Seite 1 von 1

$sess->register oder $_SESSION

Verfasst: Mi 19. Aug 2009, 16:45
von Chopper
Hi,

also ich habe hier im Forum und Internet nichts gefunden, daher frage ich mal hier nach.

Ich bräuchte eine Session Variable die ich innerhalb von Contenido benutzten kann und auch in separaten Php scripts die daneben liegen.
Nutze ich $_SESSION aus Contenido kriege ich die Meldung "cannot send session cookie - headers already sent by "
Versuche ich auf mittels $sess->register() erzeugte Variablen zuzugreifen sind sie leer im normalen PHP Script. (Es scheint ja das Contenido seine Sessions selbst verwaltet)

Gruß
Chopper

Re: $sess->register oder $_SESSION

Verfasst: Mi 19. Aug 2009, 16:52
von BagHira
Hallo Chopper,

Xmurrix hat mir damals hiermit geholfen, vielleicht hilft dir das weiter.
http://forum.contenido.org/viewtopic.ph ... ON#p132847

Re: $sess->register oder $_SESSION

Verfasst: Mi 19. Aug 2009, 17:03
von Chopper
Ja, den hatte ich auch schon gefunden, leider beschreibt er auch nur die beiden Anfändungsfälle separat. Wenn ich im contenido teil $sess->register benutze funktioniert das einwandfrei, aber habe ein extra pdf.php die mir nen download der session infos als pdf machen soll.

Re: $sess->register oder $_SESSION

Verfasst: Do 20. Aug 2009, 13:02
von Oldperl
Hallo Chopper,
Chopper hat geschrieben:Ja, den hatte ich auch schon gefunden, leider beschreibt er auch nur die beiden Anfändungsfälle separat. Wenn ich im contenido teil $sess->register benutze funktioniert das einwandfrei, aber habe ein extra pdf.php die mir nen download der session infos als pdf machen soll.
Du kannst in deine "extra" Datei auch die contenido/includes/startup einbinden und dann dort auch die Contenido Session starten. Oder du machst deine eigen Session.
Vorteil der Einbindung, dir stehen alle Abhängigkeiten von Contenido zur Verfügung, so dass du z.B. Userrechte, FE-Anmeldung, etc. abfragen kannst.

Gruß aus Franken

Ortwin

Re: $sess->register oder $_SESSION

Verfasst: Fr 21. Aug 2009, 09:19
von Chopper
Ja das wäre gut.

Mit einbinden meinst du include oder ? Habe es mit relativen und vollem Pfad versucht

Code: Alles auswählen

require("../contenido/includes/startup.php");
er hat mir auch keinen Error, aber wenn ich auf $sess->register nun zugreifen will sagt er

Call to a member function register() on a non-object in line 4

Ich habe in die startup auch mal ein echo an anfang und ende gepackt, die geben korrekt aus.

Re: $sess->register oder $_SESSION

Verfasst: Fr 21. Aug 2009, 10:13
von Oldperl
Hallo Chopper,

du must die PHPLib noch initialisieren mit page_open(), schau mal hier

Code: Alles auswählen

<?php
// we need to set constant
if (!defined("CON_FRAMEWORK")) {
    define("CON_FRAMEWORK", true);
}

$contenido_path = '';
# include the config file of the frontend to init the Client and Language Id
include_once ("config.php");

// include security class and check request variables
include_once ($contenido_path . 'classes/class.security.php');
Contenido_Security::checkRequests();

# Contenido startup process
include_once ($contenido_path."includes/startup.php");

// start session etc., see phplib for more info
page_open(array ('sess' => 'Contenido_Frontend_Session', 'auth' => 'Contenido_Frontend_Challenge_Crypt_Auth', 'perm' => 'Contenido_Perm'));

/***
 *
 *
 *  here is your code, all contenido variables and objects like $sess, $auth or $db are available now
 *  
 *
 ***/   

// phplib cleanup
page_close();
?>
Die Datei muss dafür im Mandantenverzeichnis, in der Regel cms/, liegen.

Gruß aus Franken

Ortwin

Re: $sess->register oder $_SESSION

Verfasst: Fr 21. Aug 2009, 11:09
von Chopper
Ah danke, es funktioniert nun.

Das einzige war es existiert keine /contenido/classes/class.security.php aber ohne den Eintrag geht es.

Ggf. könnte ja jemand das in dem entsprechenden wiki Eintrag hier noch hinzufügen, wie man an die Session in eigenen Dateien kommen würde http://www.contenido-wiki.org/wiki/inde ... le=Session