Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Dublowanie skryptu, Powróżcie mi ze szklanej kuli
MWL
post 9.04.2010, 23:36:41
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


Witam.
Postanowiłem napisać dla siebie swój własny framework i obecnie natknąłem się na naprawdę bardzo duży problem. Otóż podczas wykonywania skryptu zapisy sesji (inkrementacja) czy też zapytania sql dublują się. Nie mam pojęcia dlaczego tak się dzieje. Pomimo wypisywania w miejscu zapisu zmiennej znaku ! (teoretycznie powinienem zobaczyć 2) pokazuje się tylko jeden. Tak jakby zapis zmiennej sesji, albo wykonanie sql i tylko to wykonywało się po raz 2. Nie mam pojęcia, jak rozwiązać ten problem. Czy ktoś wie coś na ten temat (wiem że to nie wróżka, ale framework jest za duży by wklejać tutaj jego kod). Może to jakiś mankament PHP? Jestem w 100% pewien że metoda w której edytowana jest sesja nie powtarza się. Jednocześnie kiedy nie zwiększam wartosci zmiennej o 1 nie otrzymuję nic, gdy zwiększam o 2 dostaję 4, więc coś jakby musi leżeć w tym problemie. Czy ktoś miał podobny problem?


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
Go to the top of the page
+Quote Post
Zyx
post 10.04.2010, 08:30:34
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Pomógłbyś sporo, gdybyś napisał chociaż, JAK te sesje w Twoim frameworku działają, zamiast rozwodzić się nad wróżkami. Dodaj sobie do metody/funkcji zapisującej sesję robienie zrzutu wyjścia debug_backtrace() do jakiegoś pliku, uruchom jedną podstronę i powinieneś tam mieć zrzucone dokładne informacje, gdzie zapisywanie sesji było wywoływane.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
MWL
post 10.04.2010, 08:35:26
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


Ok. Działają normalnie, to znaczy:

  1. echo '!';
  2. $_SESSION['t'] = intval($_SESSION['t'])+1;
  3. echo $_SESSION['t'];


Co ciekawe, kiedy zrobię to na samym początku (w pierwszym pliku index.php) efekt mam ten sam. I dalej. TO dzieje się tylko w Firefox (mam mac'a). Ktoś wie o co chodzi? Firefox najpierw pobiera kod źródłowy, a potem stronęquestionmark.gif Nie wiem...

Innymi słowy, firefox wywołuje skrypt 2 razy, czy jest jakiś sposób by to powstrzymać?

Ten post edytował MWL 10.04.2010, 08:59:14


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
Go to the top of the page
+Quote Post
Zyx
post 10.04.2010, 09:41:05
Post #4





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Próbowałeś sposób z debug_backtrace()? Używasz standardowego mechanizmu obsługi sesji czy napisałeś własny, np. do trzymania danych w bazie? Skoro piszesz, że dzieje się tak jedynie w Firefoksie, być może w którymś miejscu masz jakieś przekierowanie, które przeładowuje tę samą stronę i niektóre przeglądarki to ignorują, a inne nie?


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
MWL
post 10.04.2010, 09:48:39
Post #5





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


Nie, nie ma żadnego systemu. Poza tym w nowym pliku (zupełnie innym) czystym o zawartości

  1. <?php
  2.  
  3. echo '!';
  4. $_SESSION['t'] = intval($_SESSION['t'])+1;
  5. echo $_SESSION['t'];
  6. ?>


Efekt jest ten sam. Wszędzie działa, w firefox nie działa. Po wysłaniu na serwer publiczny (http://ciachanie.pl/duble/). Jak zgaduję na windowsie taki błąd nie występuje...

  1. echo '<br /><pre>';
  2. echo '</pre>';


widzę:
array(0) {
}

-----

Problem udało mi się rozwiązać. Okazało się że leży po stronie ySlow (dodatku, do optymalizacji, który po załadowaniu strony ładuje ją jeszcze jeden raz).

Ten post edytował MWL 10.04.2010, 22:04:40


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
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: 14.08.2025 - 05:11