Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z klasą koszyk [rowziazane], wcześniej wszystko działało teraz nie bardzo chce
liechmaster
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.01.2007

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


Edytowanie2: Problem już rozwiązany, brakowało: else $koszyk = $_SESSION['koszyk'];

Edytowane: Warto dodać, że ten błąd występuje dopiero za drugim razem ( czyli pierwsza inicializacja jest ok.. ) dopiero jak strona jest przeładowana to się wywala.


Witam, mam nastepujący problem:

napisałem aplikację, która korzysta z klasy koszyk.
w środowisku testowym działa poprawnie (na php 5.x )
natomiast na serwerze na którym ma stać domyślnie ( serwer stoi na php 4.3.7) wywala się z błędem:

Fatal error: Call to a member function on a non-object in blabla/costam.php on line 75
w tej linijce jest coś takiego:
  1. <?php
  2. if (!isset($_SESSION['koszyk'])) {
  3. $koszyk = new Koszyk
  4. } 
  5. //nizej linijka 75
  6. $koszyk->wyswietl();
  7.  
  8. //jakis kod
  9. //i na koncu
  10. $_SESSION['koszyk']= $koszyk;
  11. ?>

natomiast definicja klasy to:

  1. <?php
  2. class Koszyk {
  3.  
  4. var $artykuly;
  5.  
  6.  function dodaj($numer, $ilosc) {//jakis kod }
  7.  
  8.  function wyswietl() {//jakis kod}
  9.  
  10. function usun() {//jakis kod}
  11.  
  12. }
  13. ?>


jaka może być przyczyna?

Ten post edytował liechmaster 5.01.2007, 11:43:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
liechmaster
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.01.2007

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


@Ace sesję ładuję na samym początku, nie wspominałem o tym bo wydawało mi się to oczywiste : ) (session_start() ).
najdziwniejsze jest to że to kurde działa mi na dwóch różnych serwerach (oba na php 5.x)
tylko wywalia się na tym 4.7.
w tej chwili nie mogę sprawdzić ale jak spojrzałem w phpinfo() to jest tam coś takiego jak dissable_classes i może właśnie na tamtym serverze jest to "on"?
póki co mam na wszelki wypadek niekoszerną wersję zastępczą na czystych funkcjach i tablicy $koszyk , która jest przekazywana przez referencję i na końcu zapisywana w sesji - tylko to nijak się ma do oop ; )

@sf o ile mi wiadomo to każdy tworzony obiekt wywołuje konstruktor klasy ; ) ( inna bajka czy jest on jawny czy też nie ;p)

tak mnie coś jeszcze tknęło.. żeby może jawnie odwołać się do zmiennej $koszyk, czyli dodać elsa w tym ifie:
  1. <?php
  2. if (!isset($_SESSION['koszyk'])) {
  3. $koszyk = new Koszyk
  4. } 
  5. else { $koszyk=$_SESSION['koszyk']; }
  6. //nizej linijka 75
  7. $koszyk->wyswietl();
  8.  
  9. //jakis kod
  10. //i na koncu
  11. $_SESSION['koszyk']= $koszyk;
  12. ?>


Ten post edytował liechmaster 4.01.2007, 14:46:46
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 14:53