Sessions in PHP 4.0.6
kensh1n
- php
Guten Tag,
Ich habe ein Online projekt testweise auf meinem rechner lokal laufen lassen unter php 4.2.3. Nun hab ich das gesamte projekt auf einen server upgeloaded, der php 4.0.6 hat. Der login den ich gemacht habe funktioniert nun überhaupt nicht mehr.
Zum Testen hab ich mir ein kleines beispielprogramm geschrieben:
Session_start.php
-----------------
<?php
session_start();
$my_global_variable = "dies ist ein Text";
session_register("my_global_variable");
echo "<meta http-equiv="refresh" content="0; URL=session_load.php?PHPSESSID=".session_id()."">";
?>
Session_load.php
----------------
<?php
session_start();
$my_global_variable = $_SESSION['my_global_variable'];
echo $my_global_variable;
session_unregister("my_global_variable");
session_destroy();
?>
Kann mir jemand sagen warum das nicht mehr funzt?
Hi,
$my_global_variable = $_SESSION['my_global_variable'];
unter PHP.4.0.6 und niedriger musst DU $HTTP_SESSION_VARS verwenden
Kann mir jemand sagen warum das nicht mehr funzt?
eigentlich nicht, denn "nicht mehr funzt" ist keine Aussage. Bemühe Dich bitte um präzisere Aussagen mit Fehlermeldungen bzw. Ist - SOll - Zuständen.
weitere Infos zu Sessions findest Du auf
http://www.php.net
Hier findest Du auch Informationen für Funktionen, die eventuell unter älteren Versionen noch nicht existiert haben.
ciao
romy
Hallo!
$my_global_variable = $_SESSION['my_global_variable'];
unter PHP.4.0.6 und niedriger musst DU $HTTP_SESSION_VARS verwenden
if(empty($_SESSION) && isset($HTTP_SESSION_VARS)) {
$_SESSION &= $HTTP_SESSION_VARS; // Referenziere $_SESSION für alte PHP-Versionen
}
Wenn Du das vor dem Einsatz von $_SESSION tust, kannst Du in
jedem Fall $_SESSION verwenden.
Bye,
Peter
Hi,
$my_global_variable = $_SESSION['my_global_variable'];
unter PHP.4.0.6 und niedriger musst DU $HTTP_SESSION_VARS verwendenKann mir jemand sagen warum das nicht mehr funzt?
eigentlich nicht, denn "nicht mehr funzt" ist keine Aussage. Bemühe Dich bitte um präzisere Aussagen mit Fehlermeldungen bzw. Ist - SOll - Zuständen.
weitere Infos zu Sessions findest Du auf
http://www.php.net
Hier findest Du auch Informationen für Funktionen, die eventuell unter älteren Versionen noch nicht existiert haben.ciao
romy
Hoi,
das mit $HTTP_SESSION_VARS hab ich auch schon probiert, es ändert nichts...
Präzise Formulierung:
auf meiner Hauptseite hab ich ein FORM, indem ich user und pw eingebe. Nun wird selbiges übergeben, in ein script, das user und pw mit den daten aus einer MySQL Tabelle vergleicht... Es wird dann eine Session gestartet und wieder zurück auf die Hauptseite geleitet (mit meta-tag). Dort ist eine Abfrage, (if($loguser)) mit der eroiert wird ob ein user eingeloggt ist, (vorher wird natürlich session_start aufgerufen) genau das hat auf meinem lokalen webserver noch funktioniert, jetzt nicht mehr mit 4.0.6 ;(
btw: ich hab oben eine URL angegeben, da ist die seite, wenn du user und pw eingibst (egal welchen) dann müsste zumindest die fehlermeldung kommen, dass des pw nicht stimmt, oder der user nicht existiert. aber die seite wird einfach neu geladen...
thx, kensh1n
Hi,
versuche eine vernünftige fehleranalyse: gibt alle Daten die Du brauchst aus um zu sehen ob sie ankommen.
Wenn die Daten nicht ankommen musst Du über die Konfiguration nachdenken (php.ini oder so)
wenn sie da sind, gibt es bestimmt nur einen Denkfehler
Ich glaube ausserdem dass die Wertzuweisung nach dem session_regsiter erfolgen sollte, wie in deinem kleinen Beispiel...
ich wurde übrigens nicht weitergeleitet sondern bin auf der checkseite stehengeblieben, wo allerdings keinerlei Anzeige war.
ciao
romy
Hi,
versuche eine vernünftige fehleranalyse: gibt alle Daten die Du brauchst aus um zu sehen ob sie ankommen.
Wenn die Daten nicht ankommen musst Du über die Konfiguration nachdenken (php.ini oder so)
wenn sie da sind, gibt es bestimmt nur einen Denkfehler
Ich glaube ausserdem dass die Wertzuweisung nach dem session_regsiter erfolgen sollte, wie in deinem kleinen Beispiel...ich wurde übrigens nicht weitergeleitet sondern bin auf der checkseite stehengeblieben, wo allerdings keinerlei Anzeige war.
ciao
romy
achja tut mir leid, es ist nicht egal ob user oder pw falsch sind
ich hab einen user angelegt mit test/test, damit kann man es testen.
btw: im VBB forum funktioniert es! ihr könnt ja den link aufs forum nehmen und dort mit test/test versuchen...
http://htl.at/illumination/anime
Ich hab das schon gemacht, in der datei wo die session angelegt wird, sind die daten alle vorhanden, sogar unmittelbar vor dem Meta tag noch, jedoch danach nicht mehr *snif* ;(
Hi,
bitte lass nicht alles drinstehen, zitiere nur worauf Du Dich beziehst, die Daten landen alle im Arhciv und dies wird dann unnötig aufgebläht
achja tut mir leid, es ist nicht egal ob user oder pw falsch sind
ich hab einen user angelegt mit test/test, damit kann man es testen.
btw: im VBB forum funktioniert es! ihr könnt ja den link aufs forum nehmen und dort mit test/test versuchen...
http://htl.at/illumination/anime
übrigens links setzt man so [ link: http://htl.at/illumination/anime ] //ohne leerezeichen
http://htl.at/illumination/anime
auch bei test/test gab es das gleiche Ergebnis, ich hänge fest, es wird nicht zurückgeleitet
ich versuche dies jetzt mal auseinander zu nehmen:
Session_start.php
-----------------
<?php
session_start();
$my_global_variable = "dies ist ein Text";
//versuche mal direkt in das sessionobjekt zu schreiben
// $_SESSION["my_global_variable"] = "dies ist ein text";
session_register("my_global_variable");
// session_register könntest DU dann weglassen, wenn Du es so lässt, gehört session_register //vor die wertzuweisung
echo "<meta http-equiv="refresh" content="0; URL=session_load.php?PHPSESSID=".session_id()."">";
//wieso hängst DU die session_id mit dran, die wird doch automatisch übergeben
//versuche mal header("Location:session_load.php");
?>
ciao
romy
Ich habs jetzt modifiziert: (funktioniert noch immer nicht)
Session_start.php:
------------------
session_start();
$HTTP_SESSION_VARS['my_global_variable'] = "dies ist ein Text";
header("Location:session_load.php");
Session_load.php:
-----------------
session_start();
$my_global_variable = $HTTP_SESSION_VARS['my_global_variable'];
echo $my_global_variable;
session_unregister("my_global_variable");
session_destroy();
... session_register brauch ich hier nicht oder?
Hi,
Session_load.php:
session_start();
$my_global_variable = $HTTP_SESSION_VARS['my_global_variable'];
echo $my_global_variable;
session_unregister("my_global_variable");
session_destroy();
... session_register brauch ich hier nicht oder?
bei der Variante nicht, aber das direkt reinschreiben funktioniert m.E. nur mit $_SESSION
ansonsten musst Du bei session_register bleiben
aber es gehört natürlich auch in die session_load.php mit rein. IMHO hattest Du es da nicht!?
versuchs nochmal
Session_start.php
-----------------
<?php
session_start();
session_register("my_global_variable");
$my_global_variable = "dies ist ein Text";
header("Location:session_load.php");
?>
Session_load.php
----------------
<?php
session_start();
session_register("my_global_variable");
$my_global_variable = $HTTP_SESSION_VARS['my_global_variable'];
echo $my_global_variable;
session_unregister("my_global_variable");
session_destroy();
?>
ciao
romy
ich hab jetzt deine editierten Files benutzt... geht auch nich *rotz* ;(
vielleicht sollt ichs mit cookies machen?!
Hi,
ich hab jetzt deine editierten Files benutzt... geht auch nich *rotz* ;(
vielleicht sollt ichs mit cookies machen?!
session-handling sollte auf jedenfall funktionieren, ich würde an Deiner Stelle lieber rausfinden woran es liegen könnte.
Wir können erstmal davon ausgehen, das der Quellcode korrekt ist. Ich habe es auf 4.0.4 und 4.1.0 getestet.
Also muss der Knackpunkt bei Deinen EInstellungen liegen. DU hast gesagt lokal funktioniert es, als gehe die lokale php.ini durch und vergleiche sie mit der server php.ini, vielleicht findest Du Unterschiede bei den sessions. ICh weiss jetzt nicht genau was da sein könnte, aber es muss ja Unterschiede geben. Cookies würden bei Fehlerhaften Einstellungen auch bloss nicht funktionieren.viel Glück!
ciao
romy
naja, das problem ist, dass ich keinen Zugriff auf den server hab, -> ich kann die php.ini auf dem server nicht einsehen... das wär ja eh das erste gewesen was ich tun wollte, aber geht ja nich ;( *snif*
Hi,
naja, das problem ist, dass ich keinen Zugriff auf den server hab, -> ich kann die php.ini auf dem server nicht einsehen... das wär ja eh das erste gewesen was ich tun wollte, aber geht ja nich ;( *snif*
dann schreib deinen Ansprechpartner an, dass die gefälligst die session-Funktionen einstellen sollen. Ich weiss ja nicht, ob Du Geld dafür bezahlst, wenn ja solltest Du Support haben.Dies ist eine Sache die auf jeden Fall funktionieren sollte.
ciao
romy