ugrás a tartalomhoz

PHP, MySQL sorok duplázódása

ha0rex · 2014. Már. 11. (K), 17.39
Sziasztok,

Jó pár órája keresem már a dolog miértjét, de nem tudok rájönni, és most egy olyan dolgot tapasztaltam, ami után már semmit nem értek, úgyhogy inkább kérdezek.

Egyelőre bővebben a rendszer működésébe nem mennék bele, lényeg, hogy egy modulárisan felépített rendszer, még nagyon kezdeti stádiumban, úgyhogy tele lehet hibákkal.

Az egyik modul lényege, hogy egy serverről JSON-ben letölti az aktuális valutaárfolyamokat, és azok közül a szükséges valuták (4 darab) összes árfolyamvariációját letárolja, tehát 16 darabot.

Legalábbis 16-ot kellene, de akárhogy bújom, mindig minden sor kétszer kerül be, tehát egy frissítés során 32 új sor keletkezik. Hosszasan kerestem, hogy miért include-olódhat be kétszer a file, amiben egy $_GET['action'] változó értéke alapján dönti el, hogy mit is csináljon, jelen esetben frissítse az árfolyamokat ugyebár.

Arra jutottam, hogy nem include-ol kétszer, elvileg minden úgy fut le, ahogyan kell neki, megnehezíti viszont a dolgomat a PHP output buffering-je, ezt használom ugyanis.

Nem is ragoznám tovább egyelőre, amiért jelenleg nem keresem a hibát, annak az oka az, hogy teljesen véletlenül megpróbáltam ugyanennek az url-nek a forráskódját frissíteni böngészőben, és így nem duplikálódtak a sorok, 16 új sor került be ahogy kell neki.

Felmerül bennem a kérdés, hogy mi a különbség? Server oldalon ugyanaz fut le attól, hogy én a kód forrását nézem, nem?

JS játszhatna esetleg, de nincs az oldalon olyan kód ami újratöltést, ajax kérést futtatna.

Köszönöm előre is az ötleteket, remélem valaki tud rajtam segíteni!
 
1

Egyre cifrább a történet:

ha0rex · 2014. Már. 11. (K), 18.25
Egyre cifrább a történet: eddig csak Chrome-ban teszteltem, ott jelentkezett a fenti hiba. Most kipróbáltam Safariban, és Firefoxban is, mindkettő jó, a szükséges 16 sor kerül csak be.

Mi a különbség? A server oldali rész server oldalon fut le, ergo ez a része böngészőfüggetlen, nem? Úgy néz ki a dolog, mintha a Chrome automatikusan újratöltené az oldalt, de ha ez így van, akkor miért?

Mostanra minden kiegészítőt kikapcsoltam a böngészőben, de ugyanaz.
2

Chrome

Endyl · 2014. Már. 11. (K), 18.29
A Chrome nagyon okos, és bizonyos oldalakat szeret előtölteni, hogy gyorsabban jelenjenek meg. Ezért nem hozunk létre ilyen jellegű rekordokat GET kéréssel, hanem POST-ot használunk.
3

Kicsit off, de az ilyen

vrnagy · 2014. Már. 11. (K), 20.10
Kicsit off, de az ilyen elotolteses temanal midnig eszembe jut ez a tortenet: http://bash.hu/6951
5

Szerencsére ilyesmi nemigen

ha0rex · 2014. Már. 11. (K), 21.00
Szerencsére ilyesmi nemigen történhet, mert a felhasználói szintek megfelelően vannak kiosztva. Mindenesetre vicces story :)
4

Feltételezem, hogy nincs

szjanihu · 2014. Már. 11. (K), 20.21
Feltételezem, hogy nincs favicon és az a request ugyanoda fut be.
6

Köszönöm szépen!!! Nem is az

ha0rex · 2014. Már. 11. (K), 21.42
Köszönöm szépen!!!

Nem is az volt a probléma, hogy nem volt, hanem hogy a href="" volt. Úgytűnik a chrome ezt így kezeli. Végülis logikus, egy link üres href attribútummal is átdob saját magára...