session autmatisch leer

oaki

Erfahrenes Mitglied
Auf einer PHP Seite befindet sich sozusagen 2 Scritps.

Diese Seite beginnt zuerst mit einer Session:
Code:
session_start();
$_SESSION['ticket1']=$anzahl; 
$_SESSION['ticket2']=$ticket;

D.h.
das erste Script beginnt so:
Code:
if ($action=="blabla") {
$preis = $_SESSION['ticket1']*$_SESSION['ticket2'];

das Zweite ist eine mailfunktion
Code:
if ($action=="mail") {
mail(
blalblalblalba

$vorname
$nachname
$_SESSION['ticket1'];
$_SESSION['ticket2'];

Das Problem ist nun, das wenn das mail-script aufgerufen wird, die $_sessions leer sind. D.h. heisst die oben eingefügten Daten sind nicht mehr in der session gespeichert. An was könnte das liegen?
 
PHP:
if ($action=="mail") {
mail(
blalblalblalba

$vorname
$nachname
$_SESSION['ticket1'];
$_SESSION['ticket2'];
Ich weiß zwar nicht, ob das nur eine Art Illustration sein soll, aber wenn nicht, dann wirst du mit diesem Code nur Syntax-Fehler bekommen.

Ansonsten lass dir doch immer testweise mal das $_SESSION-Array mit [phpf]print_r[/phpf] ausgeben.
Woher kommen denn die Variablen $anzahl und $ticket ? Sollten diese aus einem Formular oder dem Querystring stammen, so sprich sie doch lieber über $_POST oder $_GET an. Am besten lässt du dir auch diese Variablen mal testweise ausgeben.
Beachte bei Sessions auch, dass du bevor du die Session startest ggf. den Namen der Session mit [phpf]session_name[/phpf] vor session_start() initialisiern musst.
 
die variablen $anzahl und $ticket kommen aus einem formular..

was mir und klar ist, ist das die session auf derselben seite beim ersten script funktioniert, und beim 2ten nicht...

wenn ich der session einen namen gegeben habe, muss ich die dann auch nach dem Namen wieder ansprechen?
 
Beachte doch dann bitte mal meine Hinweise und gib zum Debuggen alle Variablen testweise aus!

Wenn dein "2. Script" – der Teil mit der Mailfunktion – wirklich so aussehen sollte, wie du ihn in deinem Beitrag gepostet hast, dann kann da auch gar nichts funktionieren!
Was soll denn bitte ein einfaches $_SESSION['ticket1']; bewirken? Willst du es ausgeben, dann muss da ein echo davor. Oder ist das Teil der [phpf]mail[/phpf]-Parameter? Dann musst du die Werte mit Kommas ( , ) getrennt übergeben bzw. an einen String anhängen oder oder oder.
So jedenfalls funktioniert da gar nichts.

wenn ich der session einen namen gegeben habe, muss ich die dann auch nach dem Namen wieder ansprechen?
Lies dir doch bitte einfach mal den Bereich für Sessions auf php.net durch. Da steht, dass wenn du nicht den Standardnamen PHPSESSID für die Session verwendest, du die Session zuerst mit session_name('eigener_name_deiner_session'); initialisieren musst, bevor du sie startest.
 
ja, sorry ;-)

Das mailzeugs ist nur so improvisiert, es funktioniert in wirklichkeit.
die sessions kannst du übrigens im mail auch so ausgeben

Code:
".$_SESSION['ticket1']."

aber das ist ja nicht mein problem.. sondern das die variabeln leer sind.
(ich hab sie auch getestet) und ich habe einfach keine anhung wiso!
da ich die variablen ja oben deklariert habe und sie im ersten script auch funktionieren!
 
die sessions kannst du übrigens im mail auch so ausgeben
[IRONIE]Danke, das habe ich ja quasi noch gar nicht gewusst[/IRONIE] :rolleyes:

Was erhältst du denn, wenn du die Variablen $anzahl und $ticket ausgeben lässt?

Wie wäre es, wenn du mal den ganzen Code deines Mail-Abschnittes posten würdest, statt nur so einen wertlosen Schnippsel? Besser wäre vielleicht noch – falls nicht zu lange – der gesamte Code deines Scripts.

Mehr kann ich jetzt per Ferndiagnose auch nicht sagen.
 
Zurück