![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam
Z góry uprzedzam, iż zdecydowałem się napisać o moim problemie na tym forum ( a nie na forum biblioteki OPT ) ponieważ nie jestem do końca pewnien czy dana biblioteka jest przyczyną problemu. Opisując w skrócie: problem przejawia się tym, że gdy używam biblioteki OPT strona jest wywoływana podwójnie. A charakteryzując dokładniej: dzieje się tak w firefoxie (w IE nie, narazie innych przeglądarek nie sprawdzałem) oraz (drugi warunek) gdy przechodzę na stronę z innego adresu (bądź odświerzam przez ctrl+f5), co jest powiązane jak się domyślam z buforem przeglądarki. (przy normalnym odświerzeniu strona zostaje wywołana raz) Aby upewnić się, że problem jest niezależny od mojego frameworka napisałem testowy plik:
W opisanych powyżej warunkach, za jednym przeładowaniem strony wiadomość "Koniec pliku..." loguje się 2 razy. Po usunięciu kodu klasy OPT, a dokładnie linii wywołującej parser, problem znika i w każdym przypadku dostaje raz zalogowaną wiadomość. Czy ktoś ma pojęcie co jest źle? A może nic nie jest źle tylko ja nie mam o czymś pojęcia. Każda sugestia będzie mile widziana, bo szukam rozwiązania już od kilkunastu godzin. Ja w każdym razie nie wiem jak OPT może wpływać na ponowne wywołanie adresu. Z góry dziękuje za odpowiedź. [EDIT] Ze smarty zachowuje się tak samo. Więc jaki czynnik z tych szablonów wpływa (w sumie już nie wiem co) server, przeglądarkę? Ten post edytował Kamil J. 9.05.2008, 03:58:22 -------------------- Workspace: Ubuntu 8.04, PDT.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Proponuje dalej posprawdzać. Przede wszystkim użyj samego systemu szablon, bez frameworka. Inny pomysł to daj exit na koniec pliku index.php.
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Hehe, naprawdę już dużo rzeczy i razy sprawdzałem. W sumie już nie mam pomysłu co sprawdzać, liczę, że ktoś mnie naprowadzi. W każdym razie testy jak wyżej napisałem były przeprowadzone bez frameworka (jedyne komponenty z niego użyte to niezależna klasa File której Ex korzysta z FrameworkException).
![]() I teraz doszedł jeszcze kolejny czynnik, który pogłubił mnie już zupełnie. Mianowicie mam dwa pliki index.php (takie samo wywołanie Widoku wewnątrz kontrollera) oraz test.php (treść widoczna powyżej)(nie korzysta z frameworka). I teraz: w index.php problem występuje przy wywołaniu przez index.php albo index.php/costam... W test.php problemu nie stwierdziłem gdy path_info jest puste, za to gdy ma choćby jednego slasha test.php/ to już wywołanie następuje dwa razy. Wydaje mi się to bardzo dziwne, ponieważ test.php w ogóle z tej zmiennej nie korzysta (framework owszem). Dodanie exit(); na końcu pliku nie pomogło. Pomaga za to dodanie exit(); przed parse(). Czyli (ja już nie mówię, że coś nie tak z opt lub smarty) jakiś czynnik z szablonów musi wywierać wpływ na sam już nie wiem co. Mile widziana będzie każda wskazówka. Już nawet nie interesuje mnie tak bardzo samo rozwiązanie problemu, co przyczyna - w celach edukacyjnych, bo z tego co szukałem w google problem jest w miarę oryginalny. Z góry dziękuje. [edit] Nikt nie ma żadnego pomysłu? :/ Ten post edytował Kamil J. 30.07.2008, 13:28:43 -------------------- Workspace: Ubuntu 8.04, PDT.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź czy problem występuje na jakimś innym serwerze niż Twój ( ustalisz czy to wina serwera czy coś w skrypcie ) . Zobacz także czy nie masz jakiś reguł mod rewrite w .htaccess .
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, że tak późno odnawiam temat, ale tak czasem w życiu się układa.
Wracając do tematu. Zgodnie z podpowiedziami Sf sprawdziłem skrypt na innym serwerze i dzieje się to samo. Problem występuje także przy pustym pliku .htaccess , więc myślę że problem leży po stronie skryptu. Nie wiem co biblioteki Smarty i OPT powodują (bo gdy usunę wywołanie ich w skrypcie to problemu nie ma), że strona przy powyżej opisanych warunkach wyświetla się dwa razy. Proszę o jakieś pomysły, ponieważ ja i moi znajomi nie mamy już żadnych, które naprowadziły by nas na przyczynę. Z góry wielkie dzięki. Pozdrawiam. -------------------- Workspace: Ubuntu 8.04, PDT.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Bez kodu frameworka, ew. samego używanego w teście pliku, ciężko mi powiedzieć, gdzie może zachodzić problem. Na pierwszy rzut oka wygląda mi na skopane buforowanie wyjścia, tyle że to nie tłumaczy, skąd system logów dwukrotnie wpisuje coś do pliku. Kodu przeładowującego stronę OPT także nie posiada.
Dodam, że OPT jako taki był używany już z rozmaitymi frameworkami i jeszcze nie dostałem podobnego zgłoszenia o błędzie. Tym bardziej Smarty, który jest popularniejszy i dłużej obecny. Ten post edytował Zyx 30.07.2008, 20:31:24 -------------------- 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
#7
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Tak jak już pisałem w poprzednich postach - zrobiłem także test bez użycia frameworka. Kod tego pliku można znaleźć w postach powyżej. Jedyne z czego ten skrypt korzysta to klasa ułatwiająca zapisywanie danych do plików i rozszerzenie Exception, którego wymaga ta klasa.
Pozdrawiam. Dodam, że OPT jako taki był używany już z rozmaitymi frameworkami i jeszcze nie dostałem podobnego zgłoszenia o błędzie. Tym bardziej Smarty, który jest popularniejszy i dłużej obecny. Tak, jestem tego świadom, dlatego na początku podejrzewałem wszystko tylko nie te systemy szablonów. No, lecz teraz już nic innego mi nie zostało. -------------------- Workspace: Ubuntu 8.04, PDT.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 09:53 |