chris c.: Sessions erneuern?

Hallo,

vielleicht könnte mir jemand hier helfen und mir zeigen wie ich die session variablen ersetzen, bzw. erneuern könnte sodass sie nicht mehr session_register sondern $_SESSION verwenden. Ich bin leider ein völliger neuling.

Der code lautet wie folgt:

error_reporting(0);
unset($l);
session_start();
session_register($l);
if(!isset($l)){
header("Location: ../../login.php");
exit;
}

Über hilfe wäre ich wirklich dankbar.

mfg
chris

  1. Hello,

    vielleicht könnte mir jemand hier helfen und mir zeigen wie ich die session variablen ersetzen, bzw. erneuern könnte sodass sie nicht mehr session_register sondern $_SESSION verwenden. Ich bin leider ein völliger neuling.

    In dem kurzen Code-Stückchen sit das kein Problem, aber in längeren Scripten wird das dann wahrscheinlich schon recht aufwändig, weil i.d.R. gleichzeitig auch regiister_globals von ON auf OFF gewechselt hat.

    Da muss man dann sehr genau überlegen, was in welcher Reihenfolge passiert und welcher Wert früher woher kam und welche Aktion welche Werte überschrieben hat.

    Der code lautet wie folgt:

    error_reporting(E_ALL);    ## zum testen auf jeden Fall...
      session_start();
      if(!isset($_SESSION['name_des_elementes']))
      {
        if (!headers_sent())
        {
          ## Der Location-Heasder erfordert eine fully qualified url!
          header("Location: http://example.org/path/to/login.php");
          exit;
        }

    ## Alternativ-Text mit Link zu http://example.org/path/to/login.php
      }

    Variablennamen düerfen nicht mit einer Ziffer beginnen

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hallo Tom,

      vielen Dank, ich werde es mal testen. Leider ist es ein etwas grösseres script und das mit den register_globals ist leider auch ein problem, da das script tatsächlich noch register_globals=on erfordert.

      Gibt es evtl. eine simplere lösung oder eine möglichkeit register_globals zu emulieren bzw. nur für dieses script zu aktivieren?

      mfg
      chris

      1. Hello,

        vielen Dank, ich werde es mal testen. Leider ist es ein etwas grösseres script und das mit den register_globals ist leider auch ein problem, da das script tatsächlich noch register_globals=on erfordert.

        Gibt es evtl. eine simplere lösung oder eine möglichkeit register_globals zu emulieren bzw. nur für dieses script zu aktivieren?

        Ja, die habe ich hier schon mal in einem Thread beschrieben.

        Bei Apache geht sowas ggf. mit einer .htaccess, wenn man diese benutzen darf und z.B. die Files-Direktive und die Genehmigung für AllowOverride für die PHP-Einstellungen hat.

        Das ist aber die schmutzigste Lösung, die man wählen könnte.
        Ich hatte das damals eigentlich auch nur beschrieben, weil man ja wenigstens für die Umstellung das alte Script nochmal zum Laufen bringen muss...

        Du solltest Dir also besser die Arbeit machen, das gesamte Script-Werk darauf zu untersuchen, woher die Parameter (im Script Variablen) jeweils kommen, und dann schon mal auf $_GET, $_POST, $_COOKIE und $_SERVER umstellen.

        Wenn das erstmal wieder läuft, dann ist $_SESSION nur noch ein kleiner Schritt, da ja alle in der Session registierten Variablen mit session_register() angemeldet werden mussten früher.
        Und da Dein Script die in der Session gespeicherten Werte vorher mit unset() rückzusetzen scheint, musst Du also nur nach denjenigen suchen, bei denen das nicht der fall ist. Die sind dann kritisch zu untersuchen, ob sie aus externen Quellen stammen dürfen oder nicht.

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)