sonja: $SID ist leer

hilfee, $SID ist leer

<?php
    session_start();
    $_Session['username'] = $username;
    $_Session['password'] = $password;
    echo $SID;
?>

was mache ich da nur falsch? oder habe ich mal wieder ein
grundlegenes Verständnisproblem.

  1. Hi,

    was mache ich da nur falsch? oder habe ich mal wieder ein
    grundlegenes Verständnisproblem.

    Letzteres. Es gibt keine Variabe $SID sondern eine Konstante SID. Und die enthält auch nur die Session-ID, wenn sie gebraucht wird (also die Session-ID via Parameter übergeben wird und nicht via Cookie).

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Hi,

      was mache ich da nur falsch? oder habe ich mal wieder ein
      grundlegenes Verständnisproblem.

      Letzteres. Es gibt keine Variabe $SID sondern eine Konstante SID. Und die enthält auch nur die Session-ID, wenn sie gebraucht wird (also die Session-ID via Parameter übergeben wird und nicht via Cookie).

      Gruß, Cybaer

      Ok, also wenn ich nun Cookies akzeptiere dann ist da nix drinne, richtig? aber wieso erkennt dann meine 2.Seite die Session nicht?
      habe zum test versucht:
      session_start();echo $_SESSION["username"];

      kann es sein das es daran liegt dass ich via
      header("Location:bla.php"); auf die 2.Seite komme?

  2. Hallo sonja,

    was mache ich da nur falsch?

    Woher soll den die /Variable/ $SID kommen? Meinst du vielleicht die Konstante SID?

    Bedenke außerdem, dass Variablennamen in PHP case-sensitiv sind.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. Hallo sonja,

      was mache ich da nur falsch?
      Woher soll den die /Variable/ $SID kommen? Meinst du vielleicht die Konstante SID?

      Bedenke außerdem, dass Variablennamen in PHP case-sensitiv sind.

      Grüße
        David

      Ist auch nix drinne wenn ich das $ weglasse das liegt wohl daran
      wenn ich nun Cookies akzeptiere dann ist da nix drinne, richtig?

      aber wieso erkennt dann meine 2.Seite die Session nicht?
      habe zum test versucht:
      session_start();echo $_SESSION["username"];

      kann es sein das es daran liegt dass ich via
      header("Location:bla.php"); auf die 2.Seite komme?

      1. Hello,

        aber wieso erkennt dann meine 2.Seite die Session nicht?
        habe zum test versucht:
        session_start();echo $_SESSION["username"];

        kann es sein das es daran liegt dass ich via
        header("Location:bla.php"); auf die 2.Seite komme?

        Jein.
        Erstens muss der Location-Header eine vollständige URL inclusive Scheme enthalten...
        Zweitens muss das Ziel natürlich innerhalb des Cookie-Space liegen. Das heißt, dass es eine Unterseite derjenigen URL sein muss, für die der Cookie gesetzt worden ist.
        Normalerweise setzt man ihn für die Domain, dann würde der Client ihn auch an alle Seiten dieser Domain mitsenden beim Request.

        Schalte Deinen Browser zum Testen auf redselig, also so, dass er Dich fragt, ob er einen Cookie annehmen soll. Und dann lass ihn Dir zeigen.

        Und in Dein Script schreibst Du mal zum Testen _nach_ dem Abschnitt mit den Headern

        echo "<pre>\n";
          print_r($_COOKIE);
          echo "</pre>\n";

        Dann bist Du schon ein gutes Stück weiter.

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

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

  3. Hi,

    $_Session['username'] = $username;
        $_Session['password'] = $password;

    das superglobale Array heißt $_SESSION, nicht $_Session.

    echo $SID;

    Was erwartest du hier? Meinst du die Konstante SID (string) aus dem PHP-Manual? Konstanten werden ohne $ angegeben, also einfach SID.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  4. Hallo Sonja,

    <?php
        session_start();
        $_Session['username'] = $username;
        $_Session['password'] = $password;
        echo $SID;
    ?>

    $SID ist leer

    das könnte daran liegen, dass die PHP-Installation die Einstellung register_globals=off verwendet, schon Jahre Standard und empfohlen. Das von Dir verlinkte Skript verläßt sich möglicherweise auf register_globals=on.

    Woher kommt $SID?

    Freundliche Grüße

    Vinzenz

  5. Hello,

    hilfee, $SID ist leer

    <?php
        session_start();
        $_Session['username'] = $username;
        $_Session['password'] = $password;
        echo $SID;
    ?>

    was mache ich da nur falsch? oder habe ich mal wieder ein
    grundlegenes Verständnisproblem.

    Es handelt sich hier um eine "dynamische Konstante" *gg*
    Du versuchst aber auf eine Variable zuzugreifen.

    echo SID;

    wäre also richtig.
    SID ist auch nur dann gefüllt, wenn die Session gerade frisch gestartet wurde oder wenn trans_sid (siehe php.ini) als einzige Übermittlungsmöglichkeit für Session-IDs zugelassen ist.

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau