kensh1n: Sessions in PHP 4.0.6

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?

  1. 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

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
    1. 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

    2. 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

      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

      1. 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

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. 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* ;(

          1. 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

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
            sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
            Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
            Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
            1. 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?

              1. 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

                --
                DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
                sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
                Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
                Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
                1. ich hab jetzt deine editierten Files benutzt... geht auch nich *rotz* ;(
                  vielleicht sollt ichs mit cookies machen?!

                  1. 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

                    --
                    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
                    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
                    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
                    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
                    1. 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*

                      1. 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

                        --
                        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
                        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
                        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
                        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode