Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z sesjami w PHP
Forum PHP.pl > Forum > Serwery WWW > IIS
zlw
Witam.

Zainstalowałem sobie PHP 5.2.2 na IIS 5.1
PHP jako takie niby działa, ale gdy próbuję używać sesji
  1. <?php
  2. ?>


wywala mi taki błąd:


PHP Warning: session_start() [function.session-start]: open(C:\Program Files\php\session\sess_s0vt5acq4hqeji3hg4rdakjrv2, O_RDWR) failed: Permission denied (13) in C:\Inetpub\wwwroot\phpsite\session\index.php on line 2 PHP Warning: Unknown: open(C:\Program Files\php\session\sess_s0vt5acq4hqeji3hg4rdakjrv2, O_RDWR) failed: Permission denied (13) in Unknown on line 0 PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\Program Files\php\session) in Unknown on line 0


W pliku php.ini mam ustawione:
session.save_path="C:\Program Files\php\session"
Katalog ten został prze ze mnie utworzony.

Czy ktoś może wie jak ten problem rozwiązać?
Wojciech Bańcer
Sprawdź uprawnienia do tego katalogu (Właściwości -> zakładka zabezpieczenia). IIS może chodzić z ograniczonymi uprawnieniami użytkownika NetworkService i nie mieć praw do modyfikacji w katalogu, który utworzyłeś - musisz je nadać ręcznie.
zlw
Mhm.

Ten problem udało mi się już rozwiązać, ale niestety (jak to zwykle bywa) mam kolejny
Mianowicie, zmienne sesyjne nie przekazują się między stronami.
Zauważyłem, że każde odświeżenie strony tworzy nowy plik z sesjami, pewnie tu coś jest nie tak.
Jeżeli więc ktoś wie jak to naprawić prosiłbym o pomoc.
php programmer
Hm, a gdzie w tym kodzie co pokazałeś masz sesje?
Przecież nic z sesjami tu nie masz.
zlw
Ja nie mówię o tym konkretnym pliku, ale ogólnie.
php programmer
A ja mówię o kodzie, który pokazałeś
zlw
OK. Może rzeczywiście nie opisałem problemu jak należy.

Sesje nie działają w ogóle.

Kiedy robie np.
//plik 1
  1. <?php
  2.  
  3. $_SESSION['test'] = "test";
  4.  
  5. header(Location: costamcostam.php);
  6. ?>


//plik 2
  1. <?php
  2.  
  3. echo "$_SESSION['test']";
  4. ?>


Wywala mi:
PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Inetpub\wwwroot\phpsite\session\index2.php on line 4

A w katalogu z sesjami przy każdym odświeżaniu tworzy się nowy plik sesji.
php programmer
skoro ci wywala taki błąd,
to może problem tkwi w niepotrzebnie wstawionych cudzysłowach

w drugim pliku powinno być:

  1. <?php
  2.  
  3. echo $_SESSION['test'];
  4. ?>
zlw
Próbowałem już wieeele kombinacji.
cudzysłowy, pojedyncze cudzysłowy i przy podst. i przy wyświetlaniu.
W związku z tym, że tworzą się te nowe pliki sesji, gdzie jest to ta sama sesja podejrzewam, że to coś z PHP tudzież IIS'em.
php programmer
no tylko chodzi o to, że nie ma być cudzysłowów w ogóle,
(czytaj komunikat błędu), a to co podałem próbowałeś w ogóle?

Acha i jeszcze jedno,
przy wywołaniu header, ważne jest czy dajesz www czy nie
Bo dla ciastek (id sesji są pamiętane w ciastkach)
strona http://www.wp.pl to nie ta sama strona co http://wp.pl
zlw
Ehh, próbuje dalej i nic. Zmieniłem tak jak mówiłeś.

Plik pierwszy (nie wywala błędów) [index.php]:
  1. <?php
  2.  
  3. $_SESSION['test'] = "sesja dziala";
  4.  
  5. echo "<a href=index2.php>DALEJ</a>";
  6. ?>


Plik drugi [index2.php]:
  1. <?php
  2.  
  3. echo $_SESSION['test'];
  4. ?>


W pliku drugim dalej wywala:
PHP Notice: Undefined index: test in C:\Inetpub\wwwroot\phpsite\session\index2.php on line 4
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.