![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 04.05.2004
Beiträge: 3
|
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Newbie
![]() Registriert seit: 04.05.2004
Beiträge: 3
|
![]() 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* ![]() |
![]() |
![]() |
![]() |
#3 |
Newbie
![]() Registriert seit: 04.05.2004
Beiträge: 3
|
![]() 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 |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() 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. |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150
|
![]() Das hat nichts mit "Versionsbuilds"
![]() http://de3.php.net/session_start ~
____________________________________
LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs |
![]() |
![]() |
![]() |
#6 | |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Ich habe aufmerksam gelesen:
Zitat:
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 ? ![]() |
|
![]() |
![]() |
![]() |
#7 |
Inventar
![]() Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150
|
![]() 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 |
![]() |
![]() |
![]() |
#8 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() 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 ...
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|