![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 24.06.2009 Skąd: Rusinów Ostrzeżenie: (0%) ![]() ![]() |
Mam kilka pytań, do rzeczy:
1. Napisałem własną funkcję logowania użytkownika, oto ona:
Wywoływana jest ona z poziomu konstruktora głównego obiektu skryptu, gdy na podstawie zmiennej $_GET['idz-do'] w instrukcji switch wywołuje/dołączam odpowiednie funkcje/pliki. Funkcje Error i Green "upiększają" tekst podany w argumencie, dzięki czemu wygląda on jak komunikat błędu lub powodzenia akcji. $this-Lang - "tablica językowa", dołączana w konstruktorze obiektu User Prosiłbym o ogólną opinie na temat funkcji. Jakie są zagrożenia płynące z używania takowej funkcji?? 2. Jak mogę uzyskać dostęp do pola obiektu głównego z obiektu podrzędnego?? Przykład: w obiekcie głównym Gra mam pole $Lang i chcę go użyć w obiekcie podrzędnym User. 3. Czy warto przechowywać obiekt w sesji?? Przykład pliku index.php:
Pozdrawiam i oczekuję na odpowiedź (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Kupa zbędnego kodu:
Ale po kolei: Przecież login podajesz jako parametr funkcji !
A nie miało być ||
Czemu dwa zapytania...? Sam się zastanów. Co do obiektu w sesji - wszystko zależy od tego do czego on jest wykorzystany. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat 2. Jak mogę uzyskać dostęp do pola obiektu głównego z obiektu podrzędnego?? Przykład: w obiekcie głównym Gra mam pole $Lang i chcę go użyć w obiekcie podrzędnym User Zalezy co masz na mysli mowiac Podrzedny obietkt, rodzic-dziecko czy jako? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Przenoszę.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 24.06.2009 Skąd: Rusinów Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale po kolei: Przecież login podajesz jako parametr funkcji ! To nie jest Login (IMG:style_emoticons/default/winksmiley.jpg) To atrybut `name` input'a typu submit (IMG:style_emoticons/default/winksmiley.jpg) Cytat Tu jest mój błąd(O dziwo działało w 100% (IMG:style_emoticons/default/haha.gif) ) Cytat
Czemu dwa zapytania...? Sam się zastanów. mysql_num_rows() przyjmuje jako parametr wynik funkcji mysql_query(), więc nie mogłem dać: Chyba, że chodzi Ci o:
[/php] ...ale to tylko 40 znaków różnicy. Cytat Co do obiektu w sesji - wszystko zależy od tego do czego on jest wykorzystany. Właściwie to do dosłownie wszystkiego, np. połączenie z bazą danych, ustawienia zegara, daty, języka oraz do wygenerowania ciała strony. Cytat Zalezy co masz na mysli mowiac Podrzedny obietkt, rodzic-dziecko czy jako? Heh, nawet nie wiem, to moje początki z OOP'em. Chyba jednak to relacja rodzic-dziecko, obiekt "podrzędny" jest inicjowany w obiekcie "nadrzędnym". Cytat Przenoszę. Heh, nie zauważyłem subforum "Opinie", przepraszam (IMG:style_emoticons/default/winksmiley.jpg) PS. To moje początki z OOP'em, więc wybaczcie lamerstwo (IMG:style_emoticons/default/winksmiley.jpg) PS2. Czy w PHP, podobnie jak w C++ należy usuwać nieużywane obiekty?? Bo właściwie nie zależy mi na pamięci (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
To nie jest Login (IMG:style_emoticons/default/winksmiley.jpg) To atrybut `name` input'a typu submit (IMG:style_emoticons/default/winksmiley.jpg) I tak nie powinno być tego w klasie, gdyż przestaje być "uniwersalna". mysql_num_rows() przyjmuje jako parametr wynik funkcji mysql_query(), więc nie mogłem dać: Chyba, że chodzi Ci o:
[/php] ...ale to tylko 40 znaków różnicy. Ale o jedno zapytanie do bazy mniej...to bardzo dużo w tym momencie. Właściwie to do dosłownie wszystkiego, np. połączenie z bazą danych, ustawienia zegara, daty, języka oraz do wygenerowania ciała strony. Nie ma chyba sensu trzymanie takich obiektów w bazie... PS2. Czy w PHP, podobnie jak w C++ należy usuwać nieużywane obiekty?? Bo właściwie nie zależy mi na pamięci (IMG:style_emoticons/default/biggrin.gif) W php obiekt sam jest niszczony (chyba podobnie jak w JAVIE). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 24.06.2009 Skąd: Rusinów Ostrzeżenie: (0%) ![]() ![]() |
I tak nie powinno być tego w klasie, gdyż przestaje być "uniwersalna". OK, to będzie zmienione, może np. przekazywać $_POST['Login'] bezpośrednio do konstruktora?? [quote name='fifi209' date='15.08.2009, 19:55:34 ' post='648988'] Ale o jedno zapytanie do bazy mniej...to bardzo dużo w tym momencie. [/qutoe] Tu też mnie przekonałeś (IMG:style_emoticons/default/biggrin.gif) [quote name='fifi209' date='15.08.2009, 19:55:34 ' post='648988'] Nie ma chyba sensu trzymanie takich obiektów w bazie... [/qutoe] Nie chodzi o bazę, tylko o sesję (IMG:style_emoticons/default/winksmiley.jpg) Żeby przy każdym wywołaniu strony nie trzeba było tworzyć nowego obiektu, byłby "wczytywany" z sesji. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
OK, to będzie zmienione, może np. przekazywać $_POST['Login'] bezpośrednio do konstruktora?? Nie, przekazuj ją bezpośrednio do tej metody nie musi "cała klasa" wiedzieć o tym. (w sensie potrzebne Ci to tylko dla jednej metody) Nie chodzi o bazę, tylko o sesję (IMG:style_emoticons/default/winksmiley.jpg) Żeby przy każdym wywołaniu strony nie trzeba było tworzyć nowego obiektu, byłby "wczytywany" z sesji. Wiem, zamyśliłem się. Ale to sesje miałem na myśli. Obiekt możesz przetrzymywać w cache w postaci zserializowanej i myślę, że tylko wtedy gdy jego tworzenie zabiera sporo zasobów/czasu. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 24.06.2009 Skąd: Rusinów Ostrzeżenie: (0%) ![]() ![]() |
Nie, przekazuj ją bezpośrednio do tej metody nie musi "cała klasa" wiedzieć o tym. (w sensie potrzebne Ci to tylko dla jednej metody) Jako argument?? To bez znaczenia, bo funkcja jest wywoływana z poziomu konstruktora (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jako argument?? To bez znaczenia, bo funkcja jest wywoływana z poziomu konstruktora (IMG:style_emoticons/default/winksmiley.jpg) Chcesz powiedzieć, że zrobiłeś klasę z jedną metodą? (IMG:style_emoticons/default/smile.gif) Poza tym chyba powinieneś dać więcej kodu. Ten post edytował fifi209 19.08.2009, 00:54:00 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:38 |