Seite 1 von 2

Sessionvariablen?

Verfasst: 16.11.2006 18:44
von Jojoponn139
Tach -,,

ich hab eine neue Seite in phpBB erstellt. Session und so wird alles normal initialisiert.

Aber mit der gewohnten Methode

Code: Alles auswählen

$_SESSION["var1"] = $var1;
kann ich keine Variable in der Session festlegen // oder diese zumindest per

Code: Alles auswählen

$var1 = $_SESSION["var1"];
nicht abrufen --- kann mir da jemand helfen?

Verfasst: 16.11.2006 18:46
von Olli Oberhausen
Versuchs mal mit session_start(); vor der deklarierung von sessionvariablen.

Olli

Verfasst: 16.11.2006 18:51
von Ambience
session_start(); muss gleich nach <?php kommen, bevor anderer code kommt.

Verfasst: 16.11.2006 19:21
von Olli Oberhausen
Eigentlich muss das nur ausgeführt werden, bevor irgendein header gesendet wird, aber ganz oben ist mit Sicherheit nicht schlecht...

Wie es sich jedoch mit gzip versteht, kann ich nicht sagen.

Olli

Verfasst: 16.11.2006 19:24
von Jojoponn139
Ich hab doch oben geschrieben "Session und so wird alles normal initialisiert"

-->> Zumindest, wenn ich mich nicht täusche, wird ja bereits eine Session von PHPBB2 initialisiert :::

PS.: selbst wenn ich das session_start(); dazuschreibe, kann die Variable nicht gespeichert werden.

Verfasst: 16.11.2006 19:31
von Olli Oberhausen
phpBB hat ein eigene session verwaltung über die Datenbank....

Welche php version nutzt du?
Versuchs mal mit $HTTP_SESSION_VARS

Olli

Verfasst: 16.11.2006 19:39
von Jojoponn139
Mit der PHP-Version sollte es keine Probleme geben (PHP5.2)

- die veraltete Methode funzt auch nicht.

Verfasst: 16.11.2006 20:34
von Ambience
bindest du irgendwelche dateien von phpbb ein, in deine? wenn ja, dann welche`?

bzw.

solltest du die common includen.

eine session kannst du dann wie folgt erstellen:

Code: Alles auswählen

<?php
session_start();
$_SESSION['username'] = 'lol';

echo $HTTP_SESSION_VARS['username'];
?>
selbst wenn in der ini die register long arrays auf off sind, werden trotzdem diese "veralteten" variablen erzeugt die du dann im laufenden code gebrauchen kannst.

Verfasst: 16.11.2006 20:48
von Jojoponn139
Das ist die datei "datei.php"

Code: Alles auswählen

// standard hack prevent 
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

// standard session management 
$userdata = session_pagestart($user_ip, PAGE_DATEI); 
init_userprefs($userdata); 

// set page title 
$page_title = 'Titel'; 

// standard page header 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 

// assign template 
$template->set_filenames(array( 
        'datei' => 'datei.tpl'
        ) 
); 
include("funktionen.php");
$template->pparse('datei');

// standard page footer 
include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 

in der per Include eingebundenen Datei funktionen.php möchte ich nun eine Sessionvariable speichern, die später halt wieder aufgerufen wird... wird.

PS: Deine Variante funzt auch net...

Verfasst: 17.11.2006 00:15
von gn#36
Es reicht nicht, das Starten der Session in der eingebundenen Datei zu machen, denn es muss vor jedweder Ausgabe passieren. Das ist aber hier nicht der Fall, ganz im Gegenteil: Mit dem Page Header hast du bereits eine ganze Menge ausgegeben.