Avatar billede shaagerup Nybegynder
24. november 2001 - 19:14 Der er 15 kommentarer og
1 løsning

Julekalender

Nogle script der skal kunne holde en Julekalender forholdsvis sikker kun ved brug af Javascript, så folk ikke bare kan stille på uret og komme videre.

Først og fremmest skal den gemme urets klokkeslet i en cookie så snart man træder ind på startsiden. Når den besøgende har fundet ud af, at han ikke kan komme ind på d. 24. december, da det kun er d. 3, vil vedkommende alligevel gerne derind. Han stiller derfor uret. Når man vil prøve at klikke på linket igen, skriver den, det samme som før, nemlig: \"Hov, hov! Ikke snyde\". Nu var der nok nogen der bare havde stået fra der, og sagt at det var umuligt.

Andre havde kigget nærmere i scriptet, og fundet ud af at d. 5. december er adressen \"05122001.html\". Når man går ind på den side, kigger den i samme cookie, som blev dannet tidligere. Hvis datoen er den rigtige bliver man smidt videre til en side med et filnavn der ikke kan gættes umiddelbart. Hvis datoen er forkert, bliver man smidt tilbage til oversigten.

Når man så kommer tilbage til oversigten skal der helst ikke laves en ny cookie, da man efter det, sagtens kan komme ind på undersiden. Den nye cookie skal først laves, hvis datoen har ændret sig eller lign.

Kom gerne med andre forslag til at gøre en kalender sikker. Jeg har kalenderen ud på \"http://www.aak.subnet.dk/jul/\", i den udgaven uden sikkerhed (dog ikke med billeder til mere end den 3. dec). Hvis der er nogen som kan lave noget i ASP eller PHP som er lige så sikkert, vil jeg nok foretrække det (de kigger jo på serverens ur - ikke brugerens).

Den der laver det bedste resultat løber med de 100 point...
Avatar billede lestrata Nybegynder
24. november 2001 - 19:41 #1
\"forespørgsel\" i bunden af siden er stavet forkert :o)

/LeStrata
Avatar billede shaagerup Nybegynder
24. november 2001 - 19:49 #2
... jeg ønsker hjælp til det beskrevede problem. Ikke til at læse ting igennem for fejl.
Avatar billede 0verwrite Nybegynder
25. november 2001 - 05:15 #3
hmm lidt langt ude men here we go!

du kan lave en iframe der har src fra en server med serverens-timestamp og parse det fra den... det er meget  langt ude og nej det holder ikke en meter!

men du kunne jo også vælge den hårde metode og opdatere julekalenderen manuelt så er du 100% sikker på ingen snyder *s* det kræver jo så bare du er oppe klokken 00:00 :)

men min mening er hvis folk vil åbne alle sine felter og spise alt chokoladen er det bare synd for dem den 24 hvor jeg spiser min låge nummer 24 med 2 klokker ;) så lad dem snyde der vil snyde jeg tror ikke du kan gøre en pind i javascript uden at bruge en form for server-side script...

- mådz
Avatar billede jakoba Nybegynder
25. november 2001 - 13:59 #4
Denneher skulle være ret sikker:

<?  // <!-- Minus AutoDato -->

header (\"Content-type: image/gif\");
header (\"Expires: Mon, 26 Jul 1997 05:00:00 GMT\");
header (\"Last-Modified: \" . gmdate(\"D, d M Y H:i:s\") . \" GMT\");
header (\"Cache-Control: no-cache, must-revalidate\");
header (\"Pragma: no-cache\");


$day    = 24*60*60;    // seconds pr day
$year  = 31556926;    // seconds in a calendar year.
$spequi = mktime(0,0,0,11,1,2001);  //refernce dat0. 1\'ste december

$now = time();

function xLast ( $nr, $digits ) { // konverter nr til streng på digits tegn
    $tx = \"v0000000\".$nr;
    return substr( $tx, strlen($tx)-$digits );
};

$nowMax = ceil( ($now-$spequi)/$day );  // højeste dagnr der kan vises nu

if ( $nowMax >= $laagenr ) {
    $filnavn = \"kalender/pic\" . xLast($laagenr,2) . \".gif\";
} else {
    $filnavn = \"kalender/picfyfy.gif\";
}

$fp = fopen ( $filename , \"rb\" );
$ok = fpassthru ($fp);
fclose ($fp);

$fil = fopen( \"mcnt.txt\", \"r+\" );
$st = fgets( $fil, 1024 );
rewind( $fil );
fputs( $fil, ++$st );
fclose( $fil );

?>

dine links bliver så
  <a href=\"denfil.php?laagenr=1\">Låge nr 1</a>
  <a href=\"denfil.php?laagenr=2\">Låge nr 2</a>
  <a href=\"denfil.php?laagenr=3\">Låge nr 3</a>
...
billederne liggen i en mappe ved navne kalender og hedder
    pic01.gif, pic02.gif, ...
sammen med en fy-billede til når brugeren prøver at åbne en ulovlig låge:
    picfyfy.gif

mvh JakobA
Avatar billede cool-wil Nybegynder
25. november 2001 - 14:02 #5
hvorfor sætter du ikke bare kalenderen til at køre på din servers dato, så skulle man ikke kunne snyde, da det så ikke har noget med brugeren at gøre?
Avatar billede jakoba Nybegynder
25. november 2001 - 14:03 #6
Ups. De 5 counterlinier forneden ($fil) har du ikke brug for.
Avatar billede shaagerup Nybegynder
25. november 2001 - 14:03 #7
Kan man det med JavaScript?
Avatar billede Slettet bruger
25. november 2001 - 14:41 #8
jeg spørger lige hvilke 5 countlinier??
jeg har lige prøvet det, men kan squ ikek få det til at virke
Avatar billede cool-wil Nybegynder
25. november 2001 - 14:45 #9
vil i java experter ikke mene at man bare kan styre datoen, via den server hvor shaagerup ligger på, i stedet for at det skal ske fra brugerens computer?
Avatar billede jakoba Nybegynder
25. november 2001 - 14:51 #10
det er disse 5 linier der er et lille counter script for sig selv:

$fil = fopen( \"mcnt.txt\", \"r+\" );
$st = fgets( $fil, 1024 );
rewind( $fil );
fputs( $fil, ++$st );
fclose( $fil );

cool-wil >> Det er både godt og skdt at bruge serverens ur.
godt fordi brugeren ikke kan snyde ved at pille ved det.
skidt fordi folk i japan eller australien der kikker på dit ur får adgang til næste låge ved middagstid hvor din server (der står i danmark) synes det er midnat.

mvh JakobA
Avatar billede shaagerup Nybegynder
25. november 2001 - 14:54 #11
Jeg er godt tilfreds med serverens ur, da siden kun er beregnet til folk i Danmark.
Avatar billede jakoba Nybegynder
25. november 2001 - 14:54 #12
Det var jo også noget pjat jeg skrev. det skal ikke bruges i et link, men i din billedurl:

dine billeder bliver så
  <img src=\"denfil.php?laagenr=1\">Låge nr 1.
  <img src=\"denfil.php?laagenr=2\">Låge nr 2.
  <img src=\"denfil.php?laagenr=3\">Låge nr 3.
...
Avatar billede Slettet bruger
25. november 2001 - 14:56 #13
jamen hvor åbner man så lågen, hvilket link?
Avatar billede jakoba Nybegynder
25. november 2001 - 15:35 #14
din side  http://www.aak.subnet.dk/jul/20011201.html
skrives om til:
<html>
<head><title>CB OIL 20 - Anders And - Christmas Carolers</title></head>
<body bgcolor=\"white\"><table width=\"720\" border=\"0\" align=\"center\">

<p align=\"center\"><h1>CB OIL 20 - Anders And - Christmas Carolers</h1>
1 painting, (DK/GB13)</p>

<table align=\"center\" border=\"0\">
    <tr>
        <td><img src=\"denfil.php?laagenr=1\"></td>
    </tr>
</table>

Se næste billede d. 2. december<br>
<br>
Scanned by Søren Haagerup (<a href=\"mailto:shaagerup@hotmail.com\">shaagerup@hotmail.com</a>).

</table></body>
</html>
<!-- Søren Haagerup 24/11-2001 -->

De der billeder er decideret copyrighted af disney corporation.
Har du fået lov til at bruge dem i den kalender ?

mvh JakobA
Avatar billede shaagerup Nybegynder
25. november 2001 - 20:19 #15
Kan du ikke prøve at lave billederne om til at være JPG, og derefter sende det som ZIP-fil så jeg kan prøve at få det første til at virke. Martik Dæncker (martin_dk) har prøvet at få det til at virke for mig - uden held...
Avatar billede shaagerup Nybegynder
20. december 2001 - 22:13 #16
Jeg kunne ikke bruge nogen af svarene... Kunne ikke få det til at funge... Desværre
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB