![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam! Mam następujący kod:
W konstruktorze mam utworzoną właściwości $conn_id. Potrzebuje jej w metodzie login. Przedstawiony przezemnie kod jest niepoprawny. Licze na Waszą pomoc.
Powód edycji: Poprawiłem bbCode (ociu)
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Przecież konstruktor jest automatycznie ładowany!
I tą klase co podałeś używasz tak, np:
Jaki błąd ci wywala? Sprawdziłem u siebie i skrypt działa cały czas, ale nic nie wyświetla. Skąd masz tą klasę? Tutaj jest cała masa o ftp http://pl.php.net/manual/pl/ref.ftp.php Tutaj jest przykład połączenia i zalogowanie na ftp:
Prosto z manuala, co najważniejsze działa bez problemu bo sprawdzałem! Ten post edytował ExPlOiT 25.04.2009, 23:10:56 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
@ExPlOiT
nie zrozumiałeś mnie. Strukturalnie wiem, że jest prosto, utworzyć egzemplaż obiektu też umię. Jeśli w jednej motodzie mam utworzoną zmienną i potrzebuję ją użyć w drugiej to jak mam to zrobić? Rozumiecie o co mi chodzi? >> w funkcji ftp_login() muszę podać "conn_id" które zostało utworzone w osobnej metodzie(konstruktorze). Ten przykład: http://pl.php.net/manual/pl/ref.ftp.php#44110 chyba już wszystko wyjaśnia. Rano sprawdzę i napiszę jeśli będę miał jakiś problem. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Zobacz jak to zrobiłem w swojej klasie:
Ten kod obrazuje jak to zrobić, w konstruktorze nawiązałem połączenie, które używam w metodzie dane($query) jak sam widzisz, czyli $this->mysqli, a w Twoim wypadku jest to $conn_id. W Twoim wypadku w funkcji ftp_login(), wystarczy użyć $conn_id, np
Ten post edytował ExPlOiT 26.04.2009, 00:23:10 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
ExPlOiT, dalej piszesz głupoty
![]() gcdreak -> trochę bezsensownie korzystasz z możliwości, jakie daje Ci programowanie obiektowe. Do wewnętrznych zmiennych metody nigdy nie odwołasz się z zewnątrz, gdyż, jak wskazuje nazwa, są one wewnętrzne. Od tego, co musi być współdzielone między metodami, masz pola klasy i tam powinieneś przechowywać takie rzeczy. Co więcej, dotychczasowe pola, jakie utworzyłeś, także nie bardzo mają zastosowanie. Wpisałeś tam dane na sztywno, a uczyniłeś je prywatnymi, czyli de facto nie ma żadnej szansy, aby użytkownik klasy mógł tam wpisać własne ustawienia. Inna sprawa, że w ogóle później z tych pól nie korzystasz... ![]() Powinieneś zrobić tak: 1. Pola $komp, $user, $remoteFile zostawiasz, ale na wstępie dajesz im puste wartości (przy okazji mógłbyś wszystkiemu nadać jakieś jednolite nazewnictwo, tj. albo nazywasz wszystko po angielsku, albo wszystko po polsku). 2. Konstruktor pobiera parametry połączenia jako swoje argumenty i wpisuje je do tych pól. 3. Reszta klasy korzysta już wyłącznie z tych pól. 4. Ponieważ pola są prywatne, a czasem jednak przydaje się możliwość odczytania ich wartości, możesz dodać metody w stylu getServer() albo getUser() zwracające ich wartości. W ten sposób będzie je można odczytać, ale już nie będzie można ich zmodyfikować po nawiązaniu połączenia. 5. Tak samo z tym Twoim $conn_id. Do zwykłej zmiennej nie masz co tego zapisywać. Musisz utworzyć prywatne pole, wstawić wartość właśnie tam i później z niego korzystać. Tutaj już nie robisz metody do zwracania identyfikatora połączenia, gdyż jest to wewnętrzna sprawa Twojej klasy i reszta skryptu nie musi mieć do niego dostępu. 6. Ponadto nie rób obsługi wyświetlania błędów bezpośrednio w klasie, a tym bardziej nie rób tego przez die(). Jedyne, co to daje, to ogranicza poważnie zastosowanie klasy. Zamiast tego wykorzystaj wyjątek, a wtedy programista będzie mógł decydować, co zrobić w przypadku wystąpienia błędu, bo to właśnie on jest w stanie najlepiej ocenić, czy błąd taki jest dla niego na tyle krytyczny, że trzeba zatrzymać skrypt, czy nie, a jeśli tak, to miło byłoby, aby mógł on sobie sam to jakoś ładnie wyświetlić. PS. ORTOGRAFIA!!! Primo: egzemplarz, secundo: umiem. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
@Zyx
Dzięki za przydatne rady. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:39 |