Kom ihåg mig?

24 timmars cookie

Ämnesverktyg Visningsalternativ
Oläst 2009-06-16, 15:07 #1
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Har totalt kört fast, har en röstningsfunktion som bara ska gå att använda 1 gång per 24 timmar. Hur gör jag det enklast med en cookie.
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-16, 15:17 #2
Kimpo Kimpo är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 185
Kimpo Kimpo är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 185
Vilket programmeringsspråk använder du?
Kimpo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-16, 15:24 #3
Kimpo Kimpo är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 185
Kimpo Kimpo är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 185
är inte php kodare men nåt i stil med

setcookie("namnpåcookie", "text" , time()+3600*24);

och sen en if check när nån försöker rösta så kan du försöka hämta cookien

$HTTP_COOKIE_VARS["namnpåcookie"];

Här är ett asp.net exempel

Skicka cookie till klienten
Response.Cookies["HasVotedBefore"].Value = "Voted";
Response.Cookies["HasVotedBefore"].Expires = DateTime.Now.AddDays(1);

sen ett enkelt if check
if (Request.Cookies["HasVotedBefore"] != null)
Kimpo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-16, 21:33 #4
vco-systemss avatar
vco-systems vco-systems är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 774
vco-systems vco-systems är inte uppkopplad
Mycket flitig postare
vco-systemss avatar
 
Reg.datum: Dec 2004
Inlägg: 774
Sätt lite kortare tid än 24 timmar, tex. 22 timmar. Det är inte säkert att användaren besöker sidan samma tid varje dag, om man kommer dit 1h tidigare en dag kan det vara irriterande att inte kunna röst. Samma sak om du kommer lite senare en dag så blir det problem att kunna rösta dagen efter.
vco-systems är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-17, 10:14 #5
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
Annars kan du göra en cookie som håller sig bra mycket längre än en dag, och som värde ha datumet eller en timestamp, sen kan du jämföra om det är en ny dag för användaren i din röstningsfunktion. Då kan han rösta 9 på morgonen en dag och 11 på kvällen en annan och det funkar ändå.

t.ex. i php

Citat:

setcookie( 'lastVoted', time(), time() + (60*60*24*30) );
Sen jämför du när det är dags att rösta
Citat:

if ( date( "Y-m-d", $_COOKIE['lastVoted'] ) != date( "Y-m-d", time() ) ) {
// Inte samma datum som senaste rösten, du kan ju jämföra om det var 24 timmar sen om du hellre vill också
}

Är det på något sätt viktigt att det bara är en röst per dygn så skulle jag inte använda cookies för det här utan spara det i en databas istället. cookies är ju ganska lätt att radera för anvädaren. Är det inte blodigt allvar duger ju det där bra
greenio.se är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-17, 10:18 #6
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Men hur visar man ett errormeddelande, tex "Du har redan röstat idag" när cookien anropas.
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-17, 10:47 #7
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
Nu kanske du kan berätta vilket språk du jobbar i först?
greenio.se är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-22, 11:58 #8
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Siten är uppbyggd av SHTML-sidor.
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-22, 12:55 #9
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
Ok, ssi har inga funktioner för att hantera cookies vad jag vet. Vi fortsätter väl med php då.

Jag hade nog gjort något sånt här högst upp i koden.

Citat:

<?php
if ( date( "Y-m-d", $_COOKIE['lastVoted'] ) != date( "Y-m-d", time() ) ) {
// Registrera röst här

// Skriv cookie
setcookie( 'lastVoted', time(), time() + (60*60*24*30) );
$voteError = '';
} else {
echo "Du har redan röstat idag";
$voteError = '<span style="color:red">Du har redan röstat idag</span>';
}
?>
Och en ha <?php echo $voteError; ?> där du vill ha eventuellt felmeddelande.


Eftersom du inte har någon php-sida och då antagligen inte har .php som filändelse på filerna så kan du få problem med att php-koden aldrig körs.

Du behöver då skapa en .htaccess-fil som du lägger på servern med den här raden.

AddType application/x-httpd-php .html

eller .shtml eller vad du nu har för filändelse, det borde funka, men det beror lite på vad det är för server och hur den är konfigurerad.
greenio.se är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 02:04.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017