Andreas: Sessions funktionieren nicht von Anfang an???

Hallo!
Hab wie schonmal beschrieben gerade alles neu installiert, alles standard für Win2K, Also Apache und php.
Jetzt wollte ich mal sessions ausprobieren, kann das sein das die standardmäßig erstmal nicht funktionieren?

Hab folgendes Script probiert:

<?PHP
session_start();
$Variable= "Wert1";
session_register("Variable");
?>

Ich erhalte folgende Fehlermeldung:
Warning: open(/tmp\sess_a6b000c0e4590247d376f8a01cd54d90, O_RDWR) failed: m (2) in c:\apache\htdocs\1.php on line 2

In den apache Error Logs steht nichts.

Was kann das sein?

Gruß
Andreas

  1. Hoi,

    Jetzt wollte ich mal sessions ausprobieren, kann das sein das die standardmäßig erstmal nicht
    funktionieren?

    Natuerlich nicht. Du musst erst die php.ini anpassen.

    Hab folgendes Script probiert:

    <?PHP
    session_start();
    $Variable= "Wert1";
    session_register("Variable");
    ?>

    Ich erhalte folgende Fehlermeldung:
    Warning: open(/tmp\sess_a6b000c0e4590247d376f8a01cd54d90, O_RDWR) failed: m (2) in
    c:\apache\htdocs\1.php on line 2

    In den apache Error Logs steht nichts.

    Was kann das sein?

    Du hast session.save_path nicht angepasst.

    Gruss,
     CK

    P. S.: die php.ini muss im System-Dir liegen (z. B. c:\windows\system)

    1. Hai!

      Natuerlich nicht. Du musst erst die php.ini anpassen.

      Danke für den Tipp, hab mir sowas gedacht nur hab ich keine Ahnung was ich wie anpassen muß, damit das funktioniert! Woher weiß ich das denn???

      Du hast session.save_path nicht angepasst.

      Wo steht dieser denn? Kann ich irgendeinen Pfad im php-Verzeichni nehmen???

      Was muß man noch so alles anpassen, damit die typischen Funktionen, wie Sie auch an normalen mietbaren Webservern vorhanden sind, nutzen kann?
      Gruß
      Andreas

      1. Hoi,

        Danke für den Tipp, hab mir sowas gedacht nur hab ich keine Ahnung was ich wie anpassen
        muß, damit das funktioniert! Woher weiß ich das denn???

        Am besten, du liest dir mal ein WAMP-Tutorial durch, da sollte das recht gut beschrieben sein.
        Auf http://www.dynamic-webpages.de solltest du welche finden.

        Du hast session.save_path nicht angepasst.

        Wo steht dieser denn? Kann ich irgendeinen Pfad im php-Verzeichni nehmen???

        In der php.ini im Sessions-Bereich. Und jepp, kannst du, er muss nur existieren. Sinnvoll waere
        allerdings z. B. c:\temp oder c:\windows\tmp oder so.

        Was muß man noch so alles anpassen, damit die typischen Funktionen, wie Sie auch an
        normalen mietbaren Webservern vorhanden sind, nutzen kann?

        IMHO nur noch upload_temp_dir (oder wars upload_tmp_dir?)

        Gruss,
         CK

      2. Hi nochmal!
        Also hab mir die php.ini in c:\winnt\system32\ angeguckt, steht folgendes drin über Sessions:

        [Session]
        ; Handler used to store/retrieve data.
        session.save_handler = files

        ; Argument passed to save_handler.  In the case of files, this is the path
        ; where data files are stored.
        session.save_path = /tmp

        ; Whether to use cookies.
        session.use_cookies = 1

        ; Name of the session (used as cookie name).
        session.name = PHPSESSID

        ; Initialize session on request startup.
        session.auto_start = 0

        ; Lifetime in seconds of cookie or, if 0, until browser is restarted.
        session.cookie_lifetime = 0

        ; The path for which the cookie is valid.
        session.cookie_path = /

        ; The domain for which the cookie is valid.
        session.cookie_domain =

        ; Handler used to serialize data.  php is the standard serializer of PHP.
        session.serialize_handler = php

        ; Percentual probability that the 'garbage collection' process is started
        ; on every session initialization.
        session.gc_probability = 1

        ; After this number of seconds, stored data will be seen as 'garbage' and
        ; cleaned up by the garbage collection process.
        session.gc_maxlifetime = 1440

        ; Check HTTP Referer to invalidate externally stored URLs containing ids.
        session.referer_check =

        ; How many bytes to read from the file.
        session.entropy_length = 0

        ; Specified here to create the session id.
        session.entropy_file =

        ;session.entropy_length = 16

        ;session.entropy_file = /dev/urandom

        ; Set to {nocache,private,public} to determine HTTP caching aspects.
        session.cache_limiter = nocache

        ; Document expires after n minutes.
        session.cache_expire = 180

        ; use transient sid support if enabled by compiling with --enable-trans-sid.
        session.use_trans_sid = 1

        url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

        Ich habe mal den Speicherort von /tmp auf \temp geändert, auch ein entsprechndes Unterverzeichnis winnt\system32\temp\ eingerichtet, aber ich erhalte immer noch die Fehlermeldung:

        Warning: open(/tmp\sess_798f89a6c50d766d309d1eef54df3754, O_RDWR) failed: m (2) in c:\apache\htdocs\1.php on line 2

        Was muß ich da alles ändern???
        Gruß
        Andreas

        1. Also hab mir die php.ini in c:\winnt\system32\ angeguckt, steht
          folgendes drin über Sessions:

          ; Argument passed to save_handler.  In the case of files, this is the path
          ; where data files are stored.
          session.save_path = /tmp

          -----------------------^^^^

          Was genau fällt dir an diesem absoluten Pfad auf? So im Gegensatz zu den üblichen Windows-Pfaden? Tipp: Oben hast du einen hingeschrieben, da kannst du mal vergleichen.

          Warning: open(/tmp\sess_798f89a6c50d766d309d1eef54df3754, O_RDWR)

          -----------------^===^

          Und jetzt die Preisfrage: Was ist an diesem absoluten Pfad unter einem MS-Betriebssystem wohl falsch? Tipp: Öffne die Eingabeaufforderung (oder wie das unter NT heißt) und versuche mal etwas in der Richtung "dir /tmp".

          Ich bin mir sicher, daß du obigen Eintrag (und alle ähnlichen) in der php.ini berichtigen können wirst, wenn du die Antwort auf diese beiden Fragen gefunden hast.

          Gruß,
            soenk.e

          PS: Sorry für den winkenden Baumstamm :)

          1. hi!

            Warning: open(/tmp\sess_798f89a6c50d766d309d1eef54df3754, O_RDWR)
            -----------------^===^

            Und jetzt die Preisfrage: Was ist an diesem absoluten Pfad unter einem MS-Betriebssystem wohl falsch? Tipp: Öffne die Eingabeaufforderung (oder wie das unter NT heißt) und versuche mal etwas in der Richtung "dir /tmp".

            Das hatte ich wohl auch gesehen, nur wenn ich da \tmp eingetragen habe und da steht /tmp, nur weiß ich nicht warum der Slash sich nicht ändert! Weiter unten konnte man noch einen Slash ändern, hat aber auch nicht geholfen. Bleibt so.
            Auch weiß ich nicht, was ich noch in der Eingabeaufforderung eingeben soll, da funktioniert so gar nicht irgend sowas!
            Die Pfade unter WinNT sind ja mit \ Gruß
            Andreas

            1. Hoi,

              Das hatte ich wohl auch gesehen, nur wenn ich da \tmp eingetragen habe und da steht
              /tmp, nur weiß ich nicht warum der Slash sich nicht ändert! Weiter unten konnte man noch
              einen Slash ändern, hat aber auch nicht geholfen. Bleibt so.
              Auch weiß ich nicht, was ich noch in der Eingabeaufforderung eingeben soll, da funktioniert
              so gar nicht irgend sowas!
              Die Pfade unter WinNT sind ja mit \

              Du musst den absoluten Pfad angeben. Also c:....

              Gruss,
               CK

              1. Hi!
                Also das hatte ich auch schon versucht, habe das aber nochmal gemacht, gespeichert und neu hochgefahren(ich weiß nicht ob man das muß, aber manche Änderungen werden bei mir sonst nicht wirksam)

                Jetzt sieht die Fehlermeldung wieder wie Folgt aus:

                Warning: open(/tmp\sess_7946bdb8eebac6404e4e4c544f2373f0, O_RDWR) failed: m (2) in c:\apache\htdocs\1.php on line 2

                In der Zeile der php.ini, die im Verzeichnis c:\winnt\system32\ liegt steht:

                session.save_path = c:\winnt\Temp

                Warum bloß???
                Kann das sein, wenn ich immer dieselbe Datei verwende, dass in dem Cookie immer noch nach der 1. Version gesucht wird??? Die sollten doch eigenlich mit schließen des Browsers ablaufen, oder?
                WAS MACHE ICH NUR FALSCH?

                Hier nochmal der Code der Datei die ich verwende:

                <?PHP
                session_start();
                $Variable= "Wert1";
                session_register("Variable");
                ?>

                Also ich bin schon lange mit meinem Latein am Ende:-(
                Wie gesagt, win2000, alles alles unveränderte Standard Versionen, hab bis jetzt nur die Config des Apache angepaßt, damit php als Modul läuft.
                Würde es helfen, wenn ich in der

                <?
                phpinfo()
                ?>

                was nachgucken kann? Da steht z.B. noch der session.save_path mit "/tmp" drin, obwohl in der php.ini was anderes steht?!?!?!

                Wie muß denn unter Win der session.cookie_path stehen(bei mir auf "/")

                Session Support steht auf enabled.

                Wer weiß hier noch weiter? Gibt es evtl noch eine php.ini???
                Gruß
                Andreas

                1. Hallo!
                  Sorry dass ich euch hier alle so verrückt gemacht habe, ich hatte tatsächlich noch eine php.ini im winnt Ordner direkt, das wars schon:-)
                  Das herauszubekommen hat mich doch ein paar Stündchen gekostet, naja dafür bin ich jetzt wieder schlauer!
                  Danke nochmal für eure Hilfe! Hab jetzt den kpl. Pfad angegeben und es läuft!

                  Gruß an Alle!

                  Andreas