Ankündigung

Einklappen
Keine Ankündigung bisher.

session werte nach übergabe weg?!?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • session werte nach übergabe weg?!?

    hallo,
    ich übergebe einträge über die sessions, aber nach einem klick auf einen link sind alle daten wieder weg. Ganz zu begin der seite kommt mein
    PHP-Code:
    <?php
    session_start
    ();
    ?>
    und meine links sind so aufgebaut:
    PHP-Code:
    <?php
    a href
    =\"index.php?site=shoutbox&action=new&".session_name()."=".session_id()."\">
    ?>
    aber sobald ich auf den link gehe bin ich aber wieder ausgeloggt, weil die session['id'] wieder leer ist, genauso 'nick' wird nicht übergeben. Aber 2 andere werte werden übergeben. Also laut einem print_r($_SESSION)
    woran kann dass liegen?

  • #2
    die links 'erweitert' php von alleine. das session_name() = session_id() kannst du dir sparen.

    auf jeder seite, die session-daten lesen können soll, muss session_start() stehen, und nicht nur auf der ersten seite.

    Kommentar


    • #3
      Zitat von axo
      die links 'erweitert' php von alleine. das session_name() = session_id() kannst du dir sparen.
      Nur, falls PHP mit --enable-trans-sid kompiliet wurde und session.use-trans-sid auf on steht. Des Weiteren sollte arg_separator.output auf &amp; stehen, zumindest, wenn du XHTML ausspucken möchtest. Folglich sollte der Link oben auch folgendermaßen heißen:

      <a href="index.php?site=shoutbox&amp;action=new">

      Übrigends ist "site" ein eigenartiger Name für einen solchen Parameter. Ich vermute, du bist da auf einen alten Übersetzungsfehler der nicht-englischsprechenden Bevölkerung reingefallen:

      http://praegnanz.de/essays/138/homepage_traeume

      auf jeder seite, die session-daten lesen können soll, muss session_start() stehen, und nicht nur auf der ersten seite.
      Zwei Session-Variablen können ja korrekt wieder ausgelesen werden. Daran kanns also nicht liegen. Scheint also so, als ob der Wert versehentlich garnicht in der Session landet - entweder, weil du vielleicht z.B. $SESSION['id'] = $id; oder was Ähnliches geschrieben hast, oder, weil der Wert in einem Block in die Session gepackt wird (werden soll), der garnicht ausgeführt wird.

      Folglich lass dir mal am Ende des Skriptes, in dem die Werte gesetzt werden sollten $_SESSION ausgeben, schau dir an, wie der entsprechende Befehl aussieht und lass dir ggf. an der Stelle mal irgendwas ausgeben (echo 'x'.

      Basti

      Kommentar


      • #4
        ja hab den fehler gfunden. register_global is bei meinem apache auf on und ich hab irgendwo im script die variable &id eingefürht und dann hat er die $_SESSION['id'] damit überschrieben

        Kommentar


        • #5
          Ja, das ist übel. Dagegen hilft eigentlich nur, die ganze Anwendung in eine Funktion zu packen oder keine globalen Variablen zu benutzen - zumindest, wenn die Anwendung überall laufen soll und man daher keinen Einfluss auf register_globals hat.

          Basti

          Kommentar

          Lädt...
          X