![]() |
![]() ![]() |
![]() |
-Uertff- |
![]()
Post
#1
|
Goście ![]() |
Mam problem w czasie zalogowania. Gdy zrobię tak że jak zaloguję się na stronę i gdy z tej strony wejdę po prostu na plik odpowiadający za logowanie i z powrotem wrócę do tamtej poprzedniej strony to pojawia się błąd że Obiekt tej klasy nie mógł być przekonwertowany do łańcucha. Dokładnie w linii 6 w pliku tym co jest chroniony. Dokładnie komunikat wygląda tak: .
Kod Catchable fatal error: Object of class __PHP_Incomplete_Class could not be converted to string in C:\Program Files\WebServ\httpd-users\test\news\protect.php on line 6 Powiem jeszcze, że jak usunę wyświetlanie $_SESSION['user'] to wszystko i jest w porządku to samo gdy zamiast klasy to samo, tylko że w wyjątku to też działa. Proszę o pomoc bo mi zależy żeby to rozwiązać a nie mogę tego rozwiązać, szukałem wszędzie i nic o tym nie znalazłem. Kod:
|
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Sprawa wygląda tak:
1. Masz klasę user 2. Wykonujesz jakąś logikę, jakieś operacje, ... 3. Zapisujesz do sesji obiekt klasy user. PHP wie jak go zapisać bo ma klasę wczytaną. Później robisz tak: 1. Odpalasz sesję; 2. Wczytujesz z sesji obiekt klasy user. I tu jest problem, PHP nie wie jak ta klasa wyglądała bo jej nie wczytałeś, dlatego wywala błąd Object of class __PHP_Incomplete_Class. Zanim wyciągniesz klasę user z sesji, musisz ją ponownie wczytać (lub zdefiniować) w skrypcie. |
|
|
-Uertff- |
![]()
Post
#3
|
Goście ![]() |
Czyli po prostu do pliku tam gdzie jest echo 'Yo, ' . $_SESSION['user'] itd. dołączyć plik z klasą przez require() i co potem . Bo dołączyłem i teraz się pojawia taki błąd:
Kod Object of class user could not be converted to string . Teraz znowu coś z klasą user jest. Robić coś tu jeszcze oprócz dołączenia klasy przez require ?
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Z klasam wszystko jest OK, błedem jest teraz wyświetlanie obiektu.
Nie możesz sobie zrobić ot tak sobie echo obiekt;, skąd PHP ma wiedzieć jak go wyświetlić? Dopisz sobie do klasy user: I wszystko będzie OK. |
|
|
-Uertff- |
![]()
Post
#5
|
Goście ![]() |
Dodałem to do klasy ale dalej nie działa. Co teraz zrobić? użyć gdzieś tej funkcji czy co? Kod tak wygląda teraz:
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie dodałeś funkcji, o której pisałem. Jak dodasz to idziemy dalej.
Funkcji tej się nie używa jawnie. "Sama" się wykonuje kiedy traktujesz obiekt jak stringa, na przykład kiedy wyśiwetlasz go za pomocą echo. |
|
|
-Uertff- |
![]()
Post
#7
|
Goście ![]() |
Ok. Mam coś takiego. Teraz twoja funkcja będzie zwracała wartość, ale co teraz dalej. Muszę coś jeszcze dopisać w tym pliku z 'Yo, ' . $_SESSION['user'] ? Czy dołączyć tu tą klasę przez require czy co?
|
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Klasę dołączasz bez zmian.
|
|
|
-Uertff- |
![]()
Post
#9
|
Goście ![]() |
Dobra. Dołączyłem klasę do tego pliku gdzie jest wyświetlane $_SESSION['user'], ale znowu napotyka błąd że musi zwrócić łańcuch.
Kod Catchable fatal error: Method user::__toString() must return a string value in C:\Program Files\WebServ\httpd-users\test\news\protect.php on line 7 Teraz tak to wygląda:
|
|
|
-Uertff- |
![]()
Post
#10
|
Goście ![]() |
Sorry, że piszę post pod postem ale nie mam możliwości edycji. Nie mogę dalej się z tym uporać. Do pliku z klasą jest dołączona funkcja mike'a
i w pliku z $_SESSION['user'] tym co wyświetla jest tak jak wyżej dołączona klasa, ale co teraz zrobić? Dalej pojawia się ten sam komunikat co wyżej. Niby jest funkcja że zwraca wartość, ale tego nie robi jak widać wyżej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:42 |