WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 04.05.2004, 21:05   #1
135°Stereofeld
Newbie
 
Registriert seit: 04.05.2004
Beiträge: 3


Standard Sessionabbruch?

Hallo,

ich habe folgendes Problem:

Ich startet bei Aufruf einer Homepage eine Session und hinterlege eine Variable:

<?php session_start(); $_SESSION['Test'] = "TEST"; ?>

Anschließend wird automatisch eine neue Seite aufgerufen, die die Variable anzeigt:

<?php session_start(); echo $_SESSION['Test']; ?>

Wenn ich jetzt aber eine andere (HTML-)Datei aufrufe und wieder die letzte PHP-Datei ist die Variable leer. Selbes Verzeichnis, selbe Domain, selbes Browserfenster ...

Lokal funktioniert das bei mir (XP, Apache 1.3.29, PHP 4.3.4) aber einwandfrei, bei 1&1 (Linux, Apache, PHP 4.2.3) aber eben nicht. Obwohl "use_trans_sid" gesetzt ist, wird automatisch die Session ID an die Seiten angehangen?!?! Aber wie gesagt: lokal (selber Client) läuft es.

Kann mir jemand helfen?? Bin am verzweifeln

Danke schon mal an alle, die sich einen Kopf machen.

Thomas
135°Stereofeld ist offline   Mit Zitat antworten
Alt 04.05.2004, 21:49   #2
135°Stereofeld
Newbie
 
Registriert seit: 04.05.2004
Beiträge: 3


Standard

Habe das ganz mal auf zwei Scripts reduziert:

1. Script
<?php session_start(); $_SESSION['Test'] = "TEST"; ?>
In Sessionvariable: <?php echo $_SESSION['Test'] ?> geschrieben!


Lese auf Session mit PHP


2. Script
<?php session_start(); echo "Inhalt Sessionvariable: ".$_SESSION['Test']; ?>

Rufe ich das erste Script auf, erscheint folgende Ausgabe:
In Sessionvariable: TEST geschrieben!

Rufe ich anschließend das zweite Script auf, erscheint:
Inhalt Sessionvariable:

Benutze ich den Link im ersten Script geht es. Wo liegt das Problem??

*seufz*
135°Stereofeld ist offline   Mit Zitat antworten
Alt 07.05.2004, 09:51   #3
135°Stereofeld
Newbie
 
Registriert seit: 04.05.2004
Beiträge: 3


Lächeln

Nach einem regen Mailaustausch mit dem Support von 1&1 konnte das Problem doch noch gefixt werden.

Ich hatte bei den Scripten den Doctype noch vor dem session_start() stehen. Session_start muss aber zwingend als erstes an den Browser gesendet werden. Leuchtet ein. Selber blöd.

Ich hatte mir halt keine Gedanken darum gemacht, weil es lokal bei mir auch so lief.

Bye.
Thomas
135°Stereofeld ist offline   Mit Zitat antworten
Alt 07.05.2004, 11:58   #4
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Tja, dann wird der Doctype entweder von Php im Header generiert oder der Header darf noch nicht existent sein, damit die Funktion session_start() ihren Dienst verrichtet. Dann erst ist der Doctype manuell im Script anzuführen, respektive automatisch (durch Include oder sonst irgendwie). Jedenfalls funktioniert session_start() nur bei noch nicht erfolgter Ausgabe an den Client. Das ist hiermit also festzuhalten.

Ich glaube, alle, die Interesse an PHP haben (an der Programmierung damit sozusagen), werden Dir dankbar sein für die Klarstellung. Schreibe es vielleicht unter php.net in den Kommentarbereich von session_start(), damit jeder weiß, daß PHP mitunter in diversen Versionsbuilds so strikt reagiert.
kikakater ist offline   Mit Zitat antworten
Alt 07.05.2004, 16:15   #5
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Das hat nichts mit "Versionsbuilds" zu tun, ein aufmerksamer Manual Leser hätte das von vornherein beilegen können:

http://de3.php.net/session_start

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 07.05.2004, 16:31   #6
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Ich habe aufmerksam gelesen:

Zitat:
Original geschrieben von 135°Stereofeld
... weil es lokal bei mir auch so lief.

Bye.
Thomas
Warum soll ich ihm nicht glauben ... ?

Habe Seine Aussage so interpretiert, daß u.U. die PHP Version unterschiedlich reagiert, verzeih für mein unperfektes Gebaren. PHP kommt ja so fehlerfrei daher, gell ?
kikakater ist offline   Mit Zitat antworten
Alt 07.05.2004, 16:36   #7
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Keineswegs fehlerfrei, aber die Einstellungen zur Ausgabepufferung haben nichts mit unterschiedlichen PHP-Versionen per se zu tun.

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 07.05.2004, 16:38   #8
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Hätte ja sein können, daß PHP bei Version x.y.z so reagiert wie er ES GESCHRIEBEN hat, dann hat er vielleicht doch einen Holler geschrieben ? Bei ihm hat es lokal funktioniert. Dieser Widerspruch besteht nach wie vor. Soviel dazu ...
kikakater ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:53 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag