session/cookie: Session Problem

Hallo, ich nochmal.

Ich habe ein kleines problem mit meiner session/cookie
der wert $id wird mit der url gegeben also datei?id=x .

<?
session_start();
session_set_cookie_params(1600,"/tmp", "www.muhkuh.de");
$ware= "$id";
session_register("ware");
?>

Da es sich um ein Warenkorb system handelt soll er nicht 1 variable sondern alle kommenden auch speichern.
$sesid = $_SESSION["ware"];

$sql = "SELECT * FROM tabelle where id=$sesid ORDER BY id DESC";

nur hier wird sesion gebraucht.

das produkt das als ?id= definiert ist zeigt er auch an. aber halt nur das und bei url wechsel kommt halt einanderes und das alte ist weg :(

hoffe mich hat wer verstanden. hab immer probs mit sessions das is zum *piep*

  1. Hi!

    Kann es sein das die SID nicht übergeben wird?

    29.4. Wie übergebe ich Session-IDs ohne Cookies an eine andere Seite? Was ist Fallback?
    http://dclp-faq.de/q/q-sessions-fallback.html

    mfg Till

    1. braucht er den umbedingt ne Session-ID ? müsste doch auch ohne gehn oder irre ich mich?

      1. Hi!

        braucht er den umbedingt ne Session-ID ? müsste doch auch ohne gehn oder irre ich mich?

        Natürlich brauchst Du eine Session-ID ;-)
        Das ist ja gerade der Sinn einer Sessions, die Variablen speicherst Du in der Session, und PHP erkennt den Anwender dann anhand der Session-ID wieder und kann diesem die Daten aus der Session wieder zuordnen, so hat jeder seine eigenen Daten in der Session.

        Außerdem solltest Du kein session_register verwenden, Du kannst Du Session-Daten direkt über das Array $_SESSION zugreifen. Das heißt:

        session_start();
        echo $_SESSION['irgendwas'];
        $_SESSION['irgendwas'] = 123;

        Um die Übergabe der Session-ID kümmert sich PHP alleine, im Prinzip musst Du da nichts machen.
        Wenn Du mehrere Variablen in der Session speichern willst, brauchst Du natürlich auch mehrere Variablen, sonst überschreibst Du immer nur die eine. Hierfür bietet sich ein Array an:

        $_SESSION['meine_ids'][] = 123;
        $_SESSION['meine_ids'][] = 234;
        ...

        Dann hast Du in $_SESSION['meine_ids'] einen Array:

        array (
          0 => 123,
          1 => 234
        );

        echo $_SESSION['meine_ids'][1]; // gibt dann "234" aus.

        session_set_cookie_params(1600,"/tmp", "www.muhkuh.de");

        weißt Du genau was Du da machst? Dieser Session-Cookie gilt nur für www.muhkuh.de/tmp. Normalerweise brauchst Du sowas nicht.

        Sehr lesenswert zum Thema:

        Wozu sind Session nützlich: http://www.dclp-faq.de/q/q-sessions-zweck.html
        Session-Tutorial: http://tut.php-q.net/sessions.html
        Sessions mit PHP: http://www.dclp-faq.de/q/q-sessions-wie.html
        PHP-Handbuch zu Sessions: http://de3.php.net/manual/de/ref.session.php

        Grüße
        Andreas

        --
        SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/
        1. sorry hilft mir kein Stück, da das was du mir schriebst nichts mit dem zu tun hat was ich will.

          die domain sowie der ordner sind hier nur geändert im Orginal stimmen sie

    2. ps.: ist ist keine ID für session gesetzt! ?id=X stellt das Produkt dar