![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 24 Dołączył: 6.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Problem podobny był, przejrzałem wszystkie wątki, nie znalazłem rozwiązania.
Taki oto insercik dodaje zawsze dwa identyczne rekordy (różniące się tylko id, jest auto increment). -ta część programu realizuje się po kliknięciu linku <a href="adres.php?kod11=zmienna"> -w żadnym innym miejscu skryptu nie istnieje inny INSERT, -nie ma mowy o podwójnym wywołaniu skryptu z poziomu PHP czy JavaScript. -podwójne żądanie tworzy wg mnie sama przeglądarka bo problem występuje w FF a nie występuje w IE. -Dodałem file_put_contents dla potwierdzenia , że dwa razy odpala się cały IF (i rzeczywiście odpala się dwa razy). -nie posiadam tagów <button>, -nie wklejam CTRL-V (ktoś miał taki przypadek), Przeinstalowałem FF ,wyczyściłem wszystko co się dało i nic . Jeśli to wina przeglądarki to jak to spacyfikować? Nie interesują mnie obejścia problemu. Proszę o każdą konstruktywną pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 19 Dołączył: 13.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Miałem ten sam problem na google Chromie.
Problemem był validator HTML (wtyczka do chrome), który w tle otwieral mi jeszcze raz tą stronę.. -------------------- www.maxcode.pl
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 24 Dołączył: 6.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki spróbuję odinstalować wszystkie wtyczki
Niestety nie pomogło |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Najpierw trzeba by było zweryfikować cały kod, a dopiero później zastanawiać się nad tym, czy jest to wina przeglądarki, czy nie. Zainstaluj sobie Firebug-a pod FF, uaktywnij zakładkę sieć, uruchom skrypt i obserwuj, czy strona wczytuje się dwa razy, czy może wysyła jakieś żądanie asynchronicznie, a może robi to i to, i to w odwrotnej kolejności. Przetestuj tylko ten fragment skryptu zapisany w osobnym pliku, a to powinno naprowadzić Cię na jakiś trop.
Jeśli to nie kłopot/problem to wrzuć gdzieś online cały kod. Ten post edytował mortus 2.02.2012, 09:53:40 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
tam gdzie robsiz file put contents dodaj sobie dumpa $_SERVER etc, bedziesz widział skad dostajesz te dodatkowe requesty.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 24 Dołączył: 6.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem jak proponował Mortus.
Są dwa odpalenia strony. Jeden na początku a drugi identyczny na końcu po wszystkich procesach , nie asynchroniczny. Dalej jedak nie wiem co jest przyczyną. Kod który podałem można traktować jako cały bo dodaje podwójnie po odkomentowaniu reszty kodu , odpalając wpisując adres do przeglądarki. Ten post edytował sada 2.02.2012, 17:29:57 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Skoro twierdzisz, że nie jest to wina kodu, to zrob tak, jak zaproponował ActivePlayer:
Zresztą wystarczy najprostszy test, aby sprawdzić, czy to nie jest wina kodu. Wrzuć plik na serwer i uruchom:
Jeśli skrypt doda jeden rekord, to będzie to oznaczać, że masz błąd w kodzie. Ten post edytował mortus 2.02.2012, 20:06:15 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 24 Dołączył: 6.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, ża tak późno ale zawsze to lepiej niż wcale:
Wyizolowałem problem i niestety wziął się z niedbałego kodu tzn: Wersja zła:
Wersja dobra:
W wyniku odpalenia linku ze zmienną GET powodującą INSERT do bazy, a wktórym nie było zmiennej $_GET['film'] w kodzie strony tworzył się obiekt z pustymi value i src, i on powodował odświeżenie strony.
Dalej jednak nie wiem dlaczego? Ten post edytował sada 18.02.2012, 09:51:56 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Też miałem kiedyś identyczny problem.
Pusta wartość SRC oznacza przyjęcia jako wartość aktualnego adresu strony. Pobierz Swoją stronę w konsoli za pomocą wget albo funkcji file_get_contents i zobaczysz, że insert nie wykona się 2 razy.
Powód edycji: [wookieb]:
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Poza tym, puszczasz jak leci dane z GETa bezpośrednio do strony. Zrób coś z tym.
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 24 Dołączył: 6.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wersja dobra nie powoduje podwójnego INSERT-a, więc jest nieźle. Podobny efekt dało dodanie brakującego GET-a do linku , tak by nie powstawały puste src i value.
viking: mógłbyś doprecyzować, chodzi o bezpieczeństwo (jeśli tak jakie zagrożenia?) czy inne? wookieb: odpaliłem za pomocą file_get_contents i dodało podwójnie Ten post edytował sada 18.02.2012, 10:28:52 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Problem został dokładniej opisany tutaj. Błąd został zgłoszony, ale jak widać jeszcze tego nie poprawiono, w związku z czym element embed musi posiadać niepusty atrybut src. W przeciwnym wypadku wysyłane jest drugie żądanie.
Twoje rozwiązanie jest prawidłowe... jeśli nie podano adresu URL źródła, to pomijasz tworzenie elementu <object>, a w nim <embed>. EDIT: Co do bezpieczeństwa, to warto sprawdzić, czy przesłany w adresie adres źródła wskazuje rzeczywiście na plik .swf, choć możliwe, że sam element embed nie przepuści "czegoś" innego (np. skryptu PHP). Powinieneś również użyć urlencode() i urldecode(). Ten post edytował mortus 18.02.2012, 10:52:44 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 24 Dołączył: 6.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wszystkim.
Cieszę się , że problem rozwiązany do końca. mortus: o takie konkrety mi chodziło.Pomógł.(w pierwszej wersji myślałem , że ostatni post napisał viking) Mam własną funkcję czyszczącą linki. Ten post edytował sada 18.02.2012, 18:06:09 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:41 |