Gå til innhold

Merkelig oppførsel med submiting av form etter Firefox oppdatering


Anbefalte innlegg

Etter siste Firefox oppdatering har siden min begynt å oppføre seg merkelig. Akkurat som at Firefox prøver å cache teksten som var tidligere på den URLen.

 

Slik er problemet: Jeg har 3 kurs i en liste, og hvert kurs har hver sin ID som URI:

  • course.php?id=1
  • course.php?id=2
  • course.php?id=3

Så prøver jeg å slette kurs nr 3 med å trykke en "submit" knapp, som har samme side som form-action. Altså jeg har logikk i toppen av course.php som håndterer POSTen og sletter kurset. Og det fungerer fint.

 

MEN! Når jeg da oppretter et nytt kurs igjen (som da vil bli nr 3 course.php?id=3, samme som den gamle), så vises det gamle navnet fra det som var kurs nr 3 før!! Akkurat som at Firefox har cacha det for den URLen! Trykker jeg F5 så retter den seg!

Jeg har debugga, og alt er som det skal være med navn og slikt!

 

Dette skjer bare i nyeste FF! Ingen andre browsere. Jeg fikk en til å prøve med FF8, og der fungerte det som det skulle. Også oppdaterte han til nyeste FF... og da begynte det å bugge seg for han også!!

 

Har leita mye rundt, og det er mange som nevner Post/Redirect/Get uten at jeg skjønner helt hva det vil si (bare redirecte etter POST liksom?), eller om det er relatert.

Lenke til kommentar
Videoannonse
Annonse

Jeg har ingen anelse om hvordan Firefox mellomlagrer data og kan følgelig ikke bidra så mye der, men det jeg forteller kommer til å indirekte løse problemet ditt.

 

Dersom man sletter en ressurs på en nettside, så skal typisk ikke identifikasjonen til denne ressursen frigjøres og gjøre mulig å brukes av andre ressurser. Dersom du sletter kurs#3, så skal aldri '3' kunne brukes som identifikator igjen.

 

Grunnen til det er at URLen til ressursen ikke plutselig skal peke til noe annet. Brukere som f.eks. har lagt til et kurs i et bokmerke og forsøker å aksessere dette i etterkant har en forventning i forhold til hvor de skal havne.

 

Alle normale relasjonsdatabaser i dag tar for seg dette automatisk. Dersom du sørger for dette, så vil du ikke lenger oppleve at brukere ser data som tidligere har blitt slettet.

Endret av Jonas
Lenke til kommentar

Flere nattemennesker her ja :p

 

Grunnen til det er at URLen til ressursen ikke plutselig skal peke til noe annet. Brukere som f.eks. har lagt til et kurs i et bokmerke og forsøker å aksessere dette i etterkant har en forventning i forhold til hvor de skal havne

 

Jo ser den. Men nå er dette en editor for kurs, og det blir ikke offentlig før det er publisert. Jeg brukte ikke auto increment på de, for å holde lettere orden i rekkefølgen. (Nå var dette egentlig bare et eksempel for å forklare det lette. På selve kursa har jeg autoincrement. Men det er "sessions" under kurs som skaper problemer.. men samme det..)

 

Jeg kunne jo prøvd å lage ny ID når et kurs (session) blir opprettet, og se om det hjelper. Grunnen til at jeg ville ha IDene slik, var så jeg kunne sortere dem i rikitg rekkefølge med ORDER BY

 

Men kjenner du til Post/Redirect/Get? Jeg har også det problemet at POST data vil bli resendt om jeg refresher. Skjønner bare ikke helt prinsipet med PRG

Lenke til kommentar
Jeg kunne jo prøvd å lage ny ID når et kurs (session) blir opprettet, og se om det hjelper. Grunnen til at jeg ville ha IDene slik, var så jeg kunne sortere dem i rikitg rekkefølge med ORDER BY

 

Opprett heller en egen kolonne hvor du putter inn tiden ved opprettelse og sorter etter denne.

Lenke til kommentar

Ja det er nok en god løsning. Men siden rekkefølgen kan endres av brukeren, så får jeg nesten lage en egen "order" kolonne. HVIS dette hjelper da :S Når jeg tenker meg om, så oppdaga jeg problemet når jeg prøvde å slette et kapittel(session, course.php?id=1&s=1) under et kurs, og da redirecter jeg tilbake til ?id=1. Men kapittelet var fortsatt i lista etter POST (blir borte etter F5)..

Får teste det på mandag

Lenke til kommentar

Har prøvd alt mulig forskjellig. Ga opp til slutt, og satte fila tilbake til det den var... og nå fungerer det igjen!!! Skjønner ingen ting jeg..

Tok File compare i PHP Storm for å se hva forskjellen var, men de er jo helt like!

:wallbash:

Lenke til kommentar

Problemet ser ut til å være helt borte nå. Blir litt for mye kode å poste her :p Men eneste forskjellen jeg kunne se i den fila, hvor problemet var, var at <title> tagen i headern var under alt av scripts. Flyttet den opp, rett under <meta> tags. Aner ikke om det har noe å si...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...