Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][sesje] Zapis obiektu w sesji
woj_tas
post 29.10.2007, 22:19:56
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Witam.
Napisałem swego czasu prostą klasę do obsługi formularzy. Wszytko było pieknie, doskonale, dopóki nie dopisałem mechanizmu przyjaznych urli.
Przyjazne urle korzystają z mod_rewrite. Oto plik .htaccess:
  1. <?php
  2. <IfModule mod_rewrite.c>
  3. RewriteEngine On
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
  7. </IfModule>
  8. ?>


No i ta moja piekna klasę formularzy skonstruowałem tak, że po wygenerowaniu formularza na stronie cały formularz zapisuje sie w sesji.
Dokładnie:
  1. <?php
  2. function zapisz_w_sesji()
  3. {
  4. $_SESSION['form']=$this;
  5. }
  6. ?>

Wszystko bylo ok, dopóki nie dodałem pliku .htacces. Po dodaniu tych kilku reguł, formularz nie zapisuje sie w sesji.
Próbowałem także zapisywać w sesji obiekt zserializowany (wiem, wiem, powinno sie tak robic), ale nie dziala. Najciekawsze w tym wszystkim jest to że ręcznie zapisana sesja tzn:
  1. <?php
  2. $_SESSION['sesja'] = 1;
  3. ?>

zapisuje się znakomicie.
Dodam też iż plik z formularzami includuje przed session_start(); Próbowałem także po, bez rezultatów.

Co może być tego przyczynąquestionmark.gif


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
sticker
post 29.10.2007, 23:58:30
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


jesli chcesz używać sessji to w pliku skryptu który uruchamiasz na samej górze daj sobie session_start() i powinno działać. Zanim przekażesz obiekt do sesji niezbędna jest jego serializacja inaczej zostanie wywołana domyślna metoda __toString


--------------------
Go to the top of the page
+Quote Post
woj_tas
post 30.10.2007, 08:39:55
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Cytat(sticker @ 29.10.2007, 23:58:30 ) *
jesli chcesz używać sessji to w pliku skryptu który uruchamiasz na samej górze daj sobie session_start() i powinno działać.

Sesje wywołuje po includowaniu plików. Nie mogę przed. Muszę najpier załadować pliki z classa.
  1. <?php
  2. Unknown(): The script tried to execute a method or access a property of an incomplete obje
    ct. Please ensure that the class definition form of the object you are trying to operate on was loaded _before_ 
    the session was started in /usr/local/apache/www/htdocs
  3. ?>


Cytat(sticker @ 29.10.2007, 23:58:30 ) *
Zanim przekażesz obiekt do sesji niezbędna jest jego serializacja inaczej zostanie wywołana domyślna metoda __toString

Tak, tak wiem, niestety bez zmian.


--------------------
Go to the top of the page
+Quote Post
sticker
post 1.11.2007, 16:45:28
Post #4





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


pokaż wiecej skryptu to rozwiążemy problem


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:35