Hallo Leute,
ich kriege so langsam aber sicher eine Krise mit Session auf meinem Rechner. Folgende Scripts funktionieren einfach nicht:
Datei sess1.php
//*******************************************************
@session_start();
if (isset($submit))
{
session_register("s_data");
$s_data = "SessionData";
header("Location: sess2.php");
exit;
}
?>
//*******************************************************
Datei sess2.php
//*******************************************************
@session_start();
echo "Sessiondata = $s_data";
?>
//*******************************************************
sess2 gibt immer nur "Sessiondata =" aus.
Ich habe den Apache 1.3.20 und PHP 4.1.1 unter W2K installiert. Auf dem Server im Netz funktionieren diese Zwergenscripte einwandfrei. Ich habe mir auch die Einstellungen von PHP mit phpinfo() angesehen, die sind identisch mit dem vom Server, bis auf session.cookie_path und session.save_path. Es wird auch eine Sessiondatei von sess1.php angelegt und dort steht auch alles richtig eingetragen. Leider legt aber auch sess2.php eine Datei an, die logischerweise leer ist.
Das kann doch nur an meiner Konfiguration liegen, aber ich habe leider nicht den geringsten Schimmer, woran es liegen könnte.
Ich wäre für jeden Tipp dankbar, da ich schon seit einigen Stunden ratlos rumexperimentiere.
Gruß
Uwe
---
Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
|
 Profil
Website
Editieren
Zitieren
|
Adrian
Quasselstrippe
Beiträge: 246 |
lass mal die @ vor session_start(); wer...
---
schaut mal auf http://www.planetcoding-server.net vorbei
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
uwe59
Pixelschubser Threadstarter
Beiträge: 18 |
Hi Adrian,
erst mal danke, aber leider ändert Dein Tipp nichts an meinem Problem. Hast Du noch eine Idee?
Gruß
Uwe
---
Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
|  Profil
Website
Editieren
Zitieren
|
Adrian
Quasselstrippe
Beiträge: 246 |
|  Profil
E-Mail
Website
Editieren
Zitieren
|
uwe59
Pixelschubser Threadstarter
Beiträge: 18 |
Hi Adrian,
das hab' ich auch schon probiert, ändert aber auch nichts an dem Problem.
Gruß
Uwe
---
Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
|  Profil
Website
Editieren
Zitieren
|
Adrian
Quasselstrippe
Beiträge: 246 |
Komisch... auf meinem localhost gehts
---
schaut mal auf http://www.planetcoding-server.net vorbei
|  Profil
E-Mail
Website
Editieren
Zitieren
|
matze
Pixelschubser
Beiträge: 17 |
hi uwe,
ich schätze mal der fehler liegt hier:
session_register("s_data");
$s_data = "SessionData";
das müsstest du umdrehen. du musst zuerst die variable $s_data mit einem wert versehen, bevor du diesen als session-variable deklarieren kannst. also so:
$s_data = "SessionData";
session_register("s_data");
dann müsste es klappen. des weiteren würde ich bei der weiterleitung die session-id hinten dran hängen:
header("Location: sess2.php?".session_name()."=".session_id());
spätestens dann sollte es keine probleme mehr geben.
---
gruß, matze.
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Adrian
Quasselstrippe
Beiträge: 246 |
käse;)
eine sessionvariable wird die ganze session über überwacht
und statt ?session_name=session_id
nimmt mal lieber die konstante SID
außerdem braucht man das nur, wenn cookies aus sind
---
schaut mal auf http://www.planetcoding-server.net vorbei
|  Profil
E-Mail
Website
Editieren
Zitieren
|
matze
Pixelschubser
Beiträge: 17 |
naja, es liegt aber an der konfiguration von php, ob du SID verwenden kannst. bei manchen konfigurationen wird die session gleich automatisch mit hinten dran gehängt. es hängt davon ab, wie php kompiliert wurde... die variante session_name()=session_id() funktioniert dagegen immer.
außerdem kann man nicht immer davon ausgehen, dass alle surfer dieser welt cookies eingeschaltet haben.
eine sessionvariable wird die ganze session über überwacht
das wäre mir dagegen neu.
---
gruß, matze.
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Adrian
Quasselstrippe
Beiträge: 246 |
matze schrieb am 2002-07-14 16:46 :
naja, es liegt aber an der konfiguration von php, ob du SID verwenden kannst. bei manchen konfigurationen wird die session gleich automatisch mit hinten dran gehängt. es hängt davon ab, wie php kompiliert wurde... die variante session_name()=session_id() funktioniert dagegen immer.
außerdem kann man nicht immer davon ausgehen, dass alle surfer dieser welt cookies eingeschaltet haben.
|
du meinst sicher die configure-option --enable-trans-sid
die sorgt aber nur dafür, dass die SID automatisch angehängt wird,
die konstante SID existiere IMMER
---
schaut mal auf http://www.planetcoding-server.net vorbei
|  Profil
E-Mail
Website
Editieren
Zitieren
|
matze
Pixelschubser
Beiträge: 17 |
probleme mit der SID-variable bekommst aber dann, wenn du eine komplette url irgendwo angibst, die aber dennoch nicht auf eine externe seite führt. wenn du dann schreibst http://www.meineseite.de/script/soundso.php?=SID?>, wird nichts hinten dran gehängt, da es wohl ein sicherheitsrisiko wäre.
und: du musst eine variable erst definieren, bevor du sie in die session übernehmen kannst.
---
gruß, matze.
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Adrian
Quasselstrippe
Beiträge: 246 |
und: du musst eine variable erst definieren, bevor du sie in die session übernehmen kannst. |
session_register kannst du jederzeit nach dem session_start(); ausführen
---
schaut mal auf http://www.planetcoding-server.net vorbei
|  Profil
E-Mail
Website
Editieren
Zitieren
|
uwe59
Pixelschubser Threadstarter
Beiträge: 18 |
Hi Leute,
erst mal danke für die Infos, ich habe mal folgendes geändert und jetzt geht es:
$s = session_name()."=".session_id();
header("Location: sess2.php?$s");
Ist das so richtig oder habe ich da doch noch irgendwo ein Problem?
Gruß
Uwe
---
Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
|  Profil
Website
Editieren
Zitieren
|
matze
Pixelschubser
Beiträge: 17 |
wenn es so klappt, ist es auch so richtig
---
gruß, matze.
|  Profil
E-Mail
Website
Editieren
Zitieren
|
uwe59
Pixelschubser Threadstarter
Beiträge: 18 |
Hi,
da stellt sich mir aber die Frage, warum ich das nicht auf dem Server im Internet machen muss, da funktionierten die Scripte von Anfang an. Ich vermute daher, daß es entweder ein Konfigurationsproblem von Apache/PHP auf meinem Rechner ist oder daß es an Windows liegt. Der Internetserver läuft mit Linux.
---
|
|
|
Besucher : 8127826
Heute : 220
Gestern : 761
Online : 233
23.11.2024 9:17
0 Besucher in den letzten 60 Sekunden
|
|
|
|
|