Cookies

Avdelningen för webbrelaterad programmering och grafisk design.
Post Reply
User avatar
Bull1_Rid3
Posts: 79
Joined: 2002-10-06 16:45:04
Contact:

Cookies

Post by Bull1_Rid3 »

Jag har gjort en Opionsundersökning på en sida och använder just nu en sessions variabel för att kontrollera att folk inte röstar två gånger men detta går inte bra i längden eftersom det bara är att stänga browsern och rösta igen.

Så min fråga är om man skulle kunna lagra en cookie på beökarens datorn för då kan man ju inte rösta igen om man inte raderar dessa filer?
Och hur man gör detta. (Helst visa kodförslag eller en länk till en sida som visar detta).

OBS!
(Är det någon som har något bättre förslag så får ni även skriva detta)

:P
AMD Athlon Xp 2100+ || ASUS A7V333 RAID || Creative GeForce 4 Ti4400 || 512DDR pc2700 minnen || Neonlight chassi || Akasa Silvermountain kylfläns med coolermaster DP5-6I31C-OL fläkt || IBM Deskstar 60GB + 120GB Maxtor || Windows XP
User avatar
Peter Wall
Hedersbit
Posts: 7026
Joined: 2002-03-08 0:52:56
Location: Stockholm
Contact:

Post by Peter Wall »

http://www.hotscripts.com/PHP/Scripts_a ... nd_Voting/

För oss som inte kan scripta själva ... ;)
Diplomerad webbutvecklare
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"
User avatar
Bull1_Rid3
Posts: 79
Joined: 2002-10-06 16:45:04
Contact:

Post by Bull1_Rid3 »

Man tackar!

Trelig sida...

:P
AMD Athlon Xp 2100+ || ASUS A7V333 RAID || Creative GeForce 4 Ti4400 || 512DDR pc2700 minnen || Neonlight chassi || Akasa Silvermountain kylfläns med coolermaster DP5-6I31C-OL fläkt || IBM Deskstar 60GB + 120GB Maxtor || Windows XP
User avatar
stealth
Hedersbit
Posts: 3364
Joined: 2003-03-11 13:33:10
Location: Göteborg
Contact:

Post by stealth »

Grundare av webbyrån We made you look http://wemadeyoulook.at
User avatar
Bull1_Rid3
Posts: 79
Joined: 2002-10-06 16:45:04
Contact:

Post by Bull1_Rid3 »

Ok , har också letat på PHP.net men har tyvärr inte hittat det, men tack för tipset :P
AMD Athlon Xp 2100+ || ASUS A7V333 RAID || Creative GeForce 4 Ti4400 || 512DDR pc2700 minnen || Neonlight chassi || Akasa Silvermountain kylfläns med coolermaster DP5-6I31C-OL fläkt || IBM Deskstar 60GB + 120GB Maxtor || Windows XP
User avatar
poller
Hedersbit
Posts: 4387
Joined: 2002-03-11 10:33:23
Contact:

Post by poller »

Jag kör på IP, känns smidigast tycker jag.
User avatar
Bull1_Rid3
Posts: 79
Joined: 2002-10-06 16:45:04
Contact:

Post by Bull1_Rid3 »

Har ingen aning var felet ligge när jag skriver detta:

Code: Select all

setcookie ( 'rostat' , '1' , time()+60*60*24*7 , '/' , 'it.hule.harryda.se/itda01a/mikjoh/1024' , 1); // skall försvinna efter en vecka, adressen kanske skall vara med http://

if ($rostat) {
echo ("En cookie har skapats");
}
AMD Athlon Xp 2100+ || ASUS A7V333 RAID || Creative GeForce 4 Ti4400 || 512DDR pc2700 minnen || Neonlight chassi || Akasa Silvermountain kylfläns med coolermaster DP5-6I31C-OL fläkt || IBM Deskstar 60GB + 120GB Maxtor || Windows XP
User avatar
stealth
Hedersbit
Posts: 3364
Joined: 2003-03-11 13:33:10
Location: Göteborg
Contact:

Post by stealth »

$_COOKIE['rostat']

skall det vara.
Grundare av webbyrån We made you look http://wemadeyoulook.at
User avatar
Bull1_Rid3
Posts: 79
Joined: 2002-10-06 16:45:04
Contact:

Post by Bull1_Rid3 »

ok, har testat men det funkar inte kan du skriva hur du skulle göra helst så detaljerat som möjligt...
AMD Athlon Xp 2100+ || ASUS A7V333 RAID || Creative GeForce 4 Ti4400 || 512DDR pc2700 minnen || Neonlight chassi || Akasa Silvermountain kylfläns med coolermaster DP5-6I31C-OL fläkt || IBM Deskstar 60GB + 120GB Maxtor || Windows XP
User avatar
Niklas Berggren
Hedersbit
Posts: 3524
Joined: 2002-03-08 17:53:04
Location: Göteborg (Skövde)
Contact:

Post by Niklas Berggren »

fredrik wrote:Jag kör på IP, känns smidigast tycker jag.
Vi utan fast ip (läs: modemare) kan rösta så mycket vi vill då ;)
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
User avatar
poller
Hedersbit
Posts: 4387
Joined: 2002-03-11 10:33:23
Contact:

Post by poller »

Nicke. wrote:Vi utan fast ip (läs: modemare) kan rösta så mycket vi vill då ;)
Japp, men det går inte att lösa. Med cookies är det ju bara för er att ta bort dom. :)
User avatar
thr
Posts: 1242
Joined: 2002-06-26 22:55:24
Location: Skene
Contact:

Post by thr »

det bästa är:
IP && Cookie && Session
alltså:

IP (MySQL) =

Code: Select all

mysql_query("INSERT INTO <tabell> (ip,pollnamn) VALUES('" . $_SERVER['REMOTE_ADDR'] . "','" . $pollnamn "')");
Cookie =

Code: Select all

setcookie("voted['pollnamn']",$pollnamn,time()+3600);
setcookie("voted['ip']",$ip,time()+3600); // håller i en timme, ändra 3600 till så många sekunder du vill ha, för ett år:
60*60*24*365 typ.
Session =

Code: Select all

session_start();
$_SESSION['SESS_VOTED'] = "VOTED";
sen för att kolla om någon har votat:
IP(MySQL) =

Code: Select all

$MySQL_QUERY = mysql_query("SELECT * FROM <tabell> WHERE ip='" . $_SERVER['REMOTED_ADDR'] . "' AND pollnamn ='" . $pollnamn . "'");
if(mysql_num_rows($MySQL_QUERY) = 0){
$MySQL_voted = "no";
}
Cookie =

Code: Select all

if($_COOKIE['voted']['ip'] != $_SERVER['REMOTED_ADDR'] && $_COOKIE['voted']['pollnamn'] != $pollnamn){
$Cookie_voted = "no";
}
Session =

Code: Select all

if($_SESSION['SESS_VOTED'] != "VOTED"){
$Session_voted = "no";
}
kolla totalt om man får vote:a =

Code: Select all

if($Session_voted == "no" && $Cookie_voted == "no" &&  $MySQL_voted == "no"){
// vad som ska göras  om man får vote
}
Sådära... observer att detta skrev jag snabbt och rakt ur huvudet så det finns säkert några fel, men detta är huvudprincipen.
Sen har du användarnamn så får du lägga till ett sådantfält i cookie && mysql så är det löst.
User avatar
Bull1_Rid3
Posts: 79
Joined: 2002-10-06 16:45:04
Contact:

Post by Bull1_Rid3 »

:D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D

Tackar för detta väldigt beskrivande svar. Låter helt perfekt skall nog fixa med en gång. Men orkar nog inte ha med IP delen... För jag orkar inte skapa en ny tabell för en massa IP.

Kanske lägger till IP lite senare... går ju faktiskt.

Tack för svaret

:D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D

Lite väl mycket smilies där kanske.
AMD Athlon Xp 2100+ || ASUS A7V333 RAID || Creative GeForce 4 Ti4400 || 512DDR pc2700 minnen || Neonlight chassi || Akasa Silvermountain kylfläns med coolermaster DP5-6I31C-OL fläkt || IBM Deskstar 60GB + 120GB Maxtor || Windows XP
User avatar
mirza*
Posts: 1267
Joined: 2002-04-19 15:46:47

Post by mirza* »

Hmh session är väl bara en sorts cookie (stänger man av cookies, så ryker också sessions har jag för mig), så att använda båda är väl lite onödigt? ;)
IL1
User avatar
thr
Posts: 1242
Joined: 2002-06-26 22:55:24
Location: Skene
Contact:

Post by thr »

Mirza* wrote:Hmh session är väl bara en sorts cookie (stänger man av cookies, så ryker också sessions har jag för mig), så att använda båda är väl lite onödigt? ;)
Nej, sessionen sparas.
User avatar
Niklas Berggren
Hedersbit
Posts: 3524
Joined: 2002-03-08 17:53:04
Location: Göteborg (Skövde)
Contact:

Post by Niklas Berggren »

Mirza* wrote:Hmh session är väl bara en sorts cookie (stänger man av cookies, så ryker också sessions har jag för mig), så att använda båda är väl lite onödigt? ;)
Sessioner är aktiva sålänge du inte startar om din browser och tillhandahålls på servern.
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
User avatar
Bull1_Rid3
Posts: 79
Joined: 2002-10-06 16:45:04
Contact:

Post by Bull1_Rid3 »

Ja, men eftersom ip gör så att man inte skall kunna rösta med samma ip. Men eftersom inte alla har statiska IP så kommer inte bara detta att funka därför kan man även använda cookies för att förbättra detta sätt. Men man kan ju även tabort dessa cookies så därför är ju session till för att personen under tiden som han är inne på sidan inte skall kunna rösta igen. Men som sagt kan detta ej göras helt perfekt eftersom det finns alltid en utväg hur man än gör. Eftersom ingen har kommit med ett bättre förslag än "thr" så använder jag mig av detta.
AMD Athlon Xp 2100+ || ASUS A7V333 RAID || Creative GeForce 4 Ti4400 || 512DDR pc2700 minnen || Neonlight chassi || Akasa Silvermountain kylfläns med coolermaster DP5-6I31C-OL fläkt || IBM Deskstar 60GB + 120GB Maxtor || Windows XP
User avatar
mirza*
Posts: 1267
Joined: 2002-04-19 15:46:47

Post by mirza* »

Mmm sorry thr och Nicke... var inte helt säker på hur det funkade... vet nu att den byter till att spara sessionens id i urlen om man inte har cookies igång...
IL1
Post Reply