Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> include i zmienne obiektu
elmozaur
post 13.08.2008, 11:58:14
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Witajcie, prosze o pomoc w takim temacie:
Mam obiekt klasy np db. Klasa ma np 3 pola: host user pass.

do obiektu odwoluje sie z pliku index.php

echo $db->host;

i to jest ok. Ale gdy kilka linijek dalej inkluduje np logowanie.php to w pliku logowanie .php

echo $db->host;

nie zadziala. Dlaczego ? i ewentualnie jak mozna to obejsc?

dziekuje i pozdrawiam
Grzesiek
Go to the top of the page
+Quote Post
krowal
post 13.08.2008, 12:13:10
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


plik includer.php:
  1. <?php
  2. class test{
  3. public $x;
  4. }
  5.  
  6. $test = new Test();
  7. $test->x = 4;
  8.  
  9. include('part.php');
  10. ?>


plik part.php:
  1. <?php
  2. echo $test->x;
  3. ?>


U mnie działa. Sprawdź dokładnie wszystko jeszcze raz albo wklej kod.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
elmozaur
post 13.08.2008, 12:36:37
Post #3





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


baza.php
  1. <?php
  2. class db
  3. {
  4. var $baza;
  5. var $user;
  6. var $pass;
  7. }
  8. ?>


logowanie.php
  1. <?php
  2. echo $db->baza; // nie dziala (tak jakby ten inklud nie widzial obiektu)
  3. ?>



index.php
  1. <?php
  2. include('baza.php');
  3. $db = new db();
  4.  
  5. $db->baza=&#092;"baziora\";
  6. $db->user=&#092;"zen\";
  7. $db->pass=&#092;"kowalski\";
  8.  
  9. echo $db->baza; //dziala ok
  10.  
  11. include('logowanie.php');
  12. ?>


Ten post edytował elmozaur 13.08.2008, 13:06:43
Go to the top of the page
+Quote Post
krowal
post 13.08.2008, 13:08:50
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Nie wiem o co Ci chodzi, skopiowałem twój kod i działa bez problemu, może to wina wersji PHP.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
wrzasq
post 13.08.2008, 13:24:05
Post #5





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


na pewno to jest CALA zawartosc plikow? nie probujesz czasem wywolac echo z innego zasiegu, na przyklad w jakiejs funkcji/metodzie? daj var_dump($db); czy na pewno jest tam dostepna ta zmienna.


--------------------
Go to the top of the page
+Quote Post
elmozaur
post 13.08.2008, 13:49:23
Post #6





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


jedyna minimalna roznica wzgledem mojego kodu to to, ze w pliku index.php w linii 11 jest include(logowanie.php) a w orginale jest include pliku pytaj.php. Plik ten pyta baze jakie pliki ma inkludowac i je inkluduje. Na liscie jest m.in logowanie.php - ale czy to az taka roznica skoro pola sa public?

aha var_dump($db) zwraca NULL

Ten post edytował elmozaur 13.08.2008, 13:52:04
Go to the top of the page
+Quote Post
krowal
post 13.08.2008, 17:50:54
Post #7





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Jeśli na podstawie bazy sprawdzasz które pliki mają być dołączane to najprawdopodobniej po prostu nie dołączasz tego pliku gdzie tworzysz obiekt klasy db. Włącz sobie raportowanie błędów w PHP bo wygląda na to, że masz wyłączone, inaczej wyskoczyłby Ci błąd przy próbie wywołania $db->baza

...nie wspominając już, że ten kod jest bez sensu winksmiley.jpg


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
elmozaur
post 13.08.2008, 18:28:31
Post #8





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(krowal @ 13.08.2008, 18:50:54 ) *
...nie wspominając już, że ten kod jest bez sensu winksmiley.jpg



... no tak jak sobie na to patrze po godzinnej przerwie to faktycznie kod wyglada na bzdurke ;-)
Ale mozesz uwiezyc ze to maly wicinek dobrze dzialajacej calosci ;-)

Co do rozwiazania:
wrzasq - naprowadzil mnie na rozwiazanie.
problem lezal w funkcji ktora inkludowala pliki php .
standardowo wygladala tak ladujsekcje($nazwa) wystarczylo zmienic na ladujsekcje($nazwa, $db) i mimo ze nie uzywam w funkcji $db to inkludowane nia pliki widza obiekt $db, jego pola i metody.

dziekuje wszystkim za pomoc
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: 13.08.2025 - 23:12