CoN: + Sessions. Auswärts gehts, lokal net...

Meun lieben Forum!

Ich hab ein kleines Problem mit einer meiner Seiten... Ich versuche gerade einen kleinen AdminBereich zu programmieren. Ich benutze PHP, MySQL und die Sessions von PHP.

Ich hab soweit auch keine Probleme damit gehabt, doch nun musste ich mein System (Win 98) plattmachen und hatte auch alles gesichert. So fertig, System is wieder drauf, Apache lüppt auch, PHP und MySql funzt auch.

Jetzt zum Problem: Ich habe hier zwei Sachen, wo auf die SQL DB zugriffen wird: Einmal im öffentlichen Bereich, einmal da beim Admin Bereich.
Das erste klappt, aber in den Admin Bereich komm ich nicht mehr... Wenn ich auf die Index.php gehen möchte gibt mir der Server einfach nen "Internal Server Failure". Wenn ich aber auf eine Unterseite gehe (wo jedesmal die Session Variable abgefragt wird, bekomm ich folgende Fehlermeldung:

<quote>
Warning: open(c:/temp\sess_e7bd1f87916bf4c320edb4c71bbe3fb8, O_RDWR) failed: No such file or directory (2) in C:\apache\htdocs\awd\admin2\session.php on line 2
Warning: Cannot add header information - headers already sent by (output started at C:\apache\htdocs\awd\admin2\session.php:2) in C:\apache\htdocs\awd\admin2\session.php on line 26
</quote>

nebenbei bemerkt: ich lande aber trotzdem auf der index.php, die ich nicht direkt aufrufen kann?!

Ich weiss das da irgendwas mit der Session nicht stimmt... aber im netzt geht es auch ohne weiteres? Ich hab auch nochmal die Daten original ausm netz auf meine platte kopiert, aber nix?

Entweder seh ich den Wald vor lauter bäumen net, oder ich darf morgen nochmal plattemache (was ja nicht sein kann... php und mysql läuft sonst auch?)

Vielleich tfällt euch was dazu ein...
in diesem sinne. (der heute etwas zerstreute) con.

  1. Hallo Con,

    <quote>
    Warning: open(c:/temp\sess_e7bd1f87916bf4c320edb4c71bbe3fb8, O_RDWR) failed: No such file or directory (2) in C:\apache\htdocs\awd\admin2\session.php on line 2
    Warning: Cannot add header information - headers already sent by (output started at C:\apache\htdocs\awd\admin2\session.php:2) in C:\apache\htdocs\awd\admin2\session.php on line 26
    </quote>

    Das sind zwei klassische Fehlermeldungen.
    1. Gucke in deine PHP ini, welcher Pfad zum Speichern der Session Variablen
    angelegt ist. Mir kommt das "sess_e" auch etwas eigenartig vor. Mit
    Sicherheit aber resultiert diese Fehlermeldung daraus, dass PHP das
    Verzeichnis, so wie es in der PHP ini angegeben ist, nicht findet. Standard-
    maessig ist in der PHP.ini "/tmp" als Session Save Path eingetragen. Ich
    habe bei mir deshalb einfach unter C ein Verzeichnis "tmp" angelegt und
    damit funzt es wunderbar.
    Deine Session Geschichte an sich, wird ok sein (wenn es vorher gefunzt hat),
    das Problem ist nur die Pfadangabe.

    2. Du hast vor der Header Ausgabe schon irgendeine HTML Ausgabe in deinem
    Script. Ist vielleicht davor schon irgendein echo "irgendwas?"; oder unter
    Umstaenden reicht auch schon eine Leerzeile vor "<?php" auf der HTML Seite.
    Ein header kann nur verschickt werden, wenn er die erste Information ist,
    die versandt wird.

    Grüße
    Ralf

    1. Kleiner Nachtrag noch:
      Auswärts gehts, weil du da wahrscheinlich unter Unix (bzw. Linux o.ä.)
      arbeitest. Und da gibt es eben standardmässig das Verzeichnis "/tmp".
      Das header Problem sollte da allerdings das gleiche sein.

      Grüße
      Ralf

      1. Moin!

        Kleiner Nachtrag noch:
        Auswärts gehts, weil du da wahrscheinlich unter Unix (bzw. Linux o.ä.)
        arbeitest. Und da gibt es eben standardmässig das Verzeichnis "/tmp".
        Das header Problem sollte da allerdings das gleiche sein.

        Das header-Problem existiert garnicht!

        Die erste Fehlermeldung tritt irgendwo auf, wo die normale HTML-Ausgabe noch nicht begonnen wurde. Sie gibt aber Text aus. Wenn dann später noch irgendwas am Header gedreht werden muß, scheitert das natürlich.

        Ergo: Beseitigt man die erste Fehlermeldung, verschwindet automatisch auch die zweite, weil nichts mehr vorzeitig an den Browser gesendet wird.

        - Sven Rautenberg

        1. Meunsen!

          Jungs ihr seid einfach die besten! Hab eben (wie ralf geschrieben hat) in der ini nachgeschaut, und (wie sven noch meinte) ein passendes verzeichnis erstellt und wie ihr gesagt habt:

          es geht wieder!
          (wobei bei mir die frage offenbleibt: warum hatte ich vorher ein temp verzeichnis und nach dem plattmachen nicht mehr? - windows halt)

          Vielen Dank Ihr habt mir sehr geholfen!
          In diesem Sinne. CoN.