Marko: Session in PHP4 unter Apache/WIN NT geht nicht

Hallo Forum,

ich hab bei mir einen Apache auf Windows NT mit CGI PHP4-Modul laufen, bei Session-Start() und Session-Register()bekomme ich Fehler, während die Sache auf dem Server von meinem Provider funktioniert.
Muss ich PHP irgendwie anders installieren ? Liegt es vielleicht an Zugriffsrechten ? Funktionieren die Sessions unter NT überhaupt nicht ? Oder bin ich nur zu blöd ?

Danke für jede Hilfe.

Gruss

Marko

  1. ich hab bei mir einen Apache auf Windows NT mit CGI PHP4-Modul laufen, bei Session-Start() und Session-Register()bekomme ich Fehler, während die Sache auf dem Server von meinem Provider funktioniert.

    Du kannst vielleicht nichts mit der Fehlermeldung anfangen, wir aber schon, daher solltest du sie posten.

    Vielleicht solltest du in Zukunft diese Liste im Kopf haben:

    [_] Was du erreichen willst
    [_] Wie du das erreichen willst
    [_] Was du dafür bisher schon getan/versucht hast
    [_] Was Dich im weiteren interessiert/was nicht funktioniert
    [_] Was du für weitere Informationen, i.d.R. Fehlermeldungen hast
    [_] Ggf. was du jetzt von uns wissen willst.

    1. Hallo Björn,

      vielen Dank für die Ratschläge ;-) Also dann mal los:

      »»  [_] Was du erreichen willst

      Ich möchte die Sessionfunktionen der Programmiersprache PHP4 verwenden d.h. ich möchte eine Variable haben, die auch nach einem erneuten Aufruf der PHP Seite Ihren vorher zugewiesenen Wert enthält.

      »»  [_] Wie du das erreichen willst

      Ich rufe die PHP Funktion: session_register () auf, um diese Variable als Sessionvariable zu registrieren

      »»  [_] Was du dafür bisher schon getan/versucht hast

      Ich habe das untenstehende Programm aus einer Doku von ZEND kopiert und auf meiner lokalen Umgebung ausprobiert, sowie auf einem Linux Webserver meines Providers ausprobiert.

      »»  [_] Was Dich im weiteren interessiert/was nicht funktioniert

      Es interssiert mich, warum es unter meinem lokalen Apache unter WIN NT nicht funktioniert, aber auf dem Webserver, andere PHP Programme funktionieren lokal.

      »»  [_] Was du für weitere Informationen, i.d.R. Fehlermeldungen hast

      Ich habe die folgenden Fehlermeldungen.

      Warning: open(/tmp/sess_c658b789418766fe02351bf23549ef6e, O_RDWR) failed: m (2) in h:\www\objects\sessiontest.php on line 2
      Hello visitor, you have seen this page 1 times.

      To continue, click here
      Warning: open(/tmp/sess_c658b789418766fe02351bf23549ef6e, O_RDWR) failed: m (2) in Unknown on line 0

      Warning: Failed to write session data. Please check that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

      »»  [_] Ggf. was du jetzt von uns wissen willst.

      Ob es daran liegt, dass mein PHP als CGI läuft, ob es eine Möglichkeit gibt es unter WIN NT zum laufen zu bringen. Was im allgemeinen für ein Grund vorligen könnte warum es nicht läuft, und welche Möglichkeiten ich besitze es zum laufen zu bringen.

      mit freundlichen Grüssen

      Marko

      Das Programm im folgenden:

      <?php
      session_register ("count"); <- Das geht nicht
      $count++;
      ?>

      Hello visitor, you have seen this page <? echo $count; ?> times.<p>

      <php?

      the <?=SID?> is necessary to preserve the session id

      in the case that the user has disabled cookies   <- trifft nicht zu

      ?>

      To continue, <A HREF="nextpage.php?<?=SID?>">click here</A>

      1. Hallo Leute,

        nach längerem Suchen, hab ich die Lösung schon anderswo gefunden (war aber echt nicht ganz leicht, irgendwie scheinen doch noch nicht allzuviel Leute mit PHP4 zu arbeiten). Das Geheimniss liegt in der php.ini (War bei mir im Windows Veruzeichnis zu finden), es gibt dort einen Eintrag:

        session.save_path         = /tmp

        Unter Windows wird nicht automatisch erkannt, das es /tmp nicht geben kann. Also muss statt /tmp ein gültiger Windows PFad angegeben werden, mit:

        session.save_path         = c:\tmp

        hat es nach anlegen des Verzeichnisses c:\tmp funktioniert.

        Gruss

        Marko

      2. »»  [_] Was du für weitere Informationen, i.d.R. Fehlermeldungen hast

        Ich habe die folgenden Fehlermeldungen.

        Warning: open(/tmp/sess_c658b789418766fe02351bf23549ef6e, O_RDWR) failed: m (2) in h:\www\objects\sessiontest.php on line 2
        Hello visitor, you have seen this page 1 times.

        To continue, click here
        Warning: open(/tmp/sess_c658b789418766fe02351bf23549ef6e, O_RDWR) failed: m (2) in Unknown on line 0

        Warning: Failed to write session data. Please check that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

        Da steht sogar im Klartext, was du tun musst. Auf dem PHP Laufwerk existiert kein /tmp Verzeichnis. Erstelle eines oder stelle in der php.ini das Verzeichnis auf ein existierendes.