Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sesja i obiekty php4
kamiseq
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 12.07.2005
Skąd: krakow

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


poczytalem sobie troche na ten temat i w ktoryms poscie dla php4 znalazlem.

musze uzyc serialize i un serialize zanim podstawie obiekt do $_SESSION["mojObiekt"]

tylko ze wywala mi blad:| "Call to a member function on a non-object" wiec cos zle doczytalem.

co robie
1) w index.php
include("php/_dir_class.inc");
include("php/_img_class.inc");
include("php/_manager_class.inc");
session_start();
if(!isset($_SESSION["session_on"]))
{
$_SESSION["session_on"] = true;
$o = new _TbManager();
$_SESSION["oTbmanager"] = serialize($o);
}

2) w innym pliku.php
$oTbmanager = unserialize($_SESSION["oTbmanager"]);
$oTbmanager->switchGal();

i wywala blad w momencie dostawania sie do metody obiektu

czy musze dolaczyc definicje klasy w kolejnym pliku php(wydaje mis ie ze nie)

troche glupieje juz.....sad.gif
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
czy musze dolaczyc definicje klasy w kolejnym pliku php(wydaje mis ie ze nie)
Podaj mi choc jeden powod dla ktorego tak uwazasz.

A jak juz nic nie nie wymyslisz, to doczytaj podstawy w manualu:
http://www.php.net/manual/pl/language.oop.serialization.php

Popraw posta o bbcode!

ps: przenosze. z programowaniem obiektowym ma to sredni zwiazek


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kamiseq
post
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 12.07.2005
Skąd: krakow

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


dobrze wiec poczytalem sobie
1) musze wszedzie dolaczyc definicje klasy
2)"Jeśli używasz sesji i session_register() do rejestracji obiektów, te obiekty są serializowane automatycznie na końcu każdej strony php i odserializowane automatycznie na każdej z następnych stron. Zasadniczo znaczy to, że te obiekty mogą pokazać się na dowolnej z twoich stron jeśli tylko staną się częścią twojej sesji."

czyli nie muze uzywac serialize i un-se. i jesli uzywam $_SESSION["nazwa"] to wszystko powinno byc ok. a dalej nie jest

wiec o co chodzi?

  1. <?php
  2. //index.php
  3. include("php/_manager_class.inc");
  4. $o = new _TbManager();
  5. $_SESSION["soTbmanager"] = $o; 
  6.  
  7. //plik2.php
  8. include("php/_manager_class.inc");
  9. $o = $_SESSION["soTbmanager"];
  10. $o->metoda();
  11. ?>
powinno dzialac

Ten post edytował kamiseq 14.02.2007, 21:50:07
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
czyli nie muze uzywac serialize i un-se. i jesli uzywam $_SESSION["nazwa"] to wszystko powinno byc ok. a dalej nie jest
w zasadzie tak.

plik1
  1. <?php
  2. class test{
  3. function go(){
  4. echo 'gogog';
  5. }
  6. }
  7.  
  8.  
  9. $_SESSION['test'] = new test();
  10. $_SESSION['test']->go();
  11. ?>


plik2
  1. <?php
  2. class test{
  3. function go(){
  4. echo 'gogog';
  5. }
  6. }
  7.  
  8. $_SESSION['test']->go();
  9. ?>

I mi to dziala
Sprawdz w tym drugim pliku czy wogole masz cos w sesji: print_r($_SESSION).
Byc moze sesja ci nie startuje bo juz jakies naglowki poszly do przegladarki


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kamiseq
post
Post #5





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 12.07.2005
Skąd: krakow

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


sprawdze, ale zazwyczaj ustwiam flage w stylu

  1. <?php
  2. if( !isset($_SESSION["session_started"]) && $_SESSION["session_started"] )
  3. $_SESSION["session_started"] = true;
  4. else echo 'dpa';
  5. ?>


ok dziala, dz za pomoc

Ten post edytował kamiseq 16.02.2007, 12:35:43
Go to the top of the page
+Quote Post
em1X
post
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


kamiseq nie ustawiaj plikom nazw o rozszerzeniach .inc bo kazdy glupi je sobie odczyta (no chyba, ze na serwerze masz ustawione ich parsowanie badz katalog jest chroniony - jezeli tak zwracam honor).


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
kamiseq
post
Post #7





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 12.07.2005
Skąd: krakow

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


nie nie chronie ich, ale docelowo te pliki nie beda w katalogu public_html
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 Aktualny czas: 21.08.2025 - 04:36