cookieproblemer!

Tags:    php

Hej!

Jeg har problemer med en cookie, som jeg bruger således, at folk ikke kan afgive stemme på hver film på min hjemmeside mere end én gang. Det underlige er, at jeg ikke har ændret på noget af betydning, men lige pludselig virker den ikke. Selve karakterdelen ser sådan ud:

Fold kodeboks ind/udKode 


Jeg har tjekket om cookien overhovedet bliver gemt, og det gør den ikke. Så det er altså ikke den del, hvor der bliver tjekket, om cookien er der, der er problemet. Hvis det er til nogen hjælp, ser hele siden sådan ud:

Fold kodeboks ind/udKode 




3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Den første del du sender kode til, der tjekker du om der er sat en cookie, og hvis der ikke er, viser den afstemnings mulighederne. NEDEUNDER tjekker du så om der er blevet submittet noget, og sætter en cookie. Derfor vil din if-sætning (hvor du tjekke cookien) ikke blive læst efter som cookien først bliver sat senere.

Du skal tænke på at PHP læser fra toppen, og så ned af. Derfor (for at gentage mig selv igen), så vil din cookie først blive sat EFTER at du læser om der er sat en cookie.

Du skal altså flytte din if-sætning med POST over din if-sætning med cookies.

Fold kodeboks ind/udKode 

(Ved ikke lige om syntaxen er rigtigt, rettede det bare i tekstboksen her.. :))

Forstår hvad du jeg mener? :)

Lige en anden ting ;) Din MySQL forespørgsler kunne være sejere. Du henter dem ud, og regner og smider det hele i igen. Det kunne være meget nemmere!

Bare gør sådan her:
Fold kodeboks ind/udKode 


Så regner MySQL det nemlig ud for dig. Så slipper du for at hente det hele ud, og lade PHP regne det for dig :)

Håber det var hjælp nok for dig?



Det er jo kun, hvis der ikke er en cookie, at der skal placeres en. Derfor er den sat efter if-sætningen.
Jeg har selv fundet ud af problemet, men tak for hjælpen alligevel:).

Det med karakteren ser sgu meget smart ud, men når man finder snittet, bliver det så ikke det gamle "total" og det gamle "stemmer", der divideres med hinanden. Så ændrer snittet sig jo ikke før der bliver givet endnu en stemme.



Okay. Men det var derfor jeg har rettet din if-sætning sådan at den tjekker om der er sat en cookie og om der er submittet noget! Men den metode du havde før, der skal du smide en header eller genindlæse siden før den ville opdatere det :) Men godt du har fundet ud af det.

Nej, du skal tænke på at mysql ikke laver alle 3 instruktioner på én gang. Den laver dem én ad gangen, og det er heldigvis i den rækkefølge som du har tastet dem ind :) Så den vil ligge stemmerne til og plusse med en, og så regne gennemsnittet :)
Jeg brugre det selv på mine sider, og det virker (har gennemtestet det). ;)



t