Avatar billede cf1234 Nybegynder
20. november 2012 - 10:33 Der er 24 kommentarer

Forhindre reload/refresh af side

Jeg har en redirect side og vil gerne forhindre brugere i at reloade/refresh den side de kommer over på. Jeg har tænkt i variabel sendt med redirect siden som så skal valideres. Troede så variablen blev tom ved reload, men det er desværre ikke tilfældet.
Nogle gode ideer til hvordan jeg på den eller anden måde forhindre genindlæsning af siden (javascript, php, mysql....alt er velkommen)
Avatar billede Panen Nybegynder
20. november 2012 - 10:38 #1
I stedet for at prøve at forhindre folk i at reloade siden, så prøv at lave din side uafhængig af om man reloader :)
Avatar billede cf1234 Nybegynder
20. november 2012 - 10:47 #2
Kan man forhindre data fra mysql i at blive reloadet?...ellers har jeg stadig et behov :o)
Avatar billede Panen Nybegynder
20. november 2012 - 10:56 #3
Det er jo dig der bestemmer hvornår data må hentes ud af din database.
Det er svært for mig at give et konkret svar, da jeg ikke aner hvad det drejer sig om i din situation.

Du kan både bruge sessions eller skrive direkte til et felt i din table at data er blevet hentet ud 1 gang, og ikke må igen.
Der er flere måder at gøre det på.
Avatar billede cf1234 Nybegynder
20. november 2012 - 11:10 #4
OK. Lidt konkrete detaljer.
Brugerne tilgår en konkurrence. Startsiden ligger hos ekstern leverandør og sender brugeren enten til en vinder eller til en taber side i en fastsat interval - lad os sige hver 10. bliver sendt til vindersiden.
De to sider ligger hos mig. Det er ligegyldigt med tabersiden, men meget vigtigt at man ikke kan reloade vindersiden (eller indholdet på denne) men skal på startsiden for at prøve igen.
Forstår du hvad jeg mener?
Avatar billede Panen Nybegynder
20. november 2012 - 11:32 #5
Som jeg forstår det bliver brugeren sendt fra en ekstern side til din vinderside. Her udelukker vi brugen af sessions da disse ikke kan sendes mellem servere uden lige.

Hvad sker der hvis en bruger refresher siden efter han er landet på din vinderside? Og hvad forhindrer en bruger i selv at navigere ind på din vinderside uden at blive sendt dertil?
Avatar billede cf1234 Nybegynder
20. november 2012 - 11:41 #6
Hvis han refresher siden efter han er landet på den får han et vinder lod igen - det er det jeg gerne vil undgå. Intet forhindre ham i at navigere direkte ind på siden. Det var derfor jeg tænkte lidt i en redirect han ikke ser indeholdende en variabel der skal valideres på vindersiden.
Avatar billede Panen Nybegynder
20. november 2012 - 12:02 #7
Jeg ved faktisk ikke hvad den meste korrekte måde at gøre det på er.

Hvis jeg selv skulle give et bud, ville jeg nok lave et slags token-system.
Konkurrencesiden sender vinderen til vindersiden med en eller anden form for ID eller Token.
Vindersiden verificerer dette ID/Token i en Database, og sætter så ID/Token som brugt.

Refresher man siden vil det Token ikke kun verificeres igen da det er blevet brugt, og samtidig kan man ikke navigere ind på siden uden et Token som er ledigt og ligger i databasen.

Dette kræver selvfølgelig samspil mellem Konkurrencearrangør og dig.
Avatar billede olebole Juniormester
20. november 2012 - 17:24 #8
<ole>

"Hvis han refresher siden efter han er landet på den får han et vinder lod igen"

Så bruger du enten konkurrencen forkert - eller også har udbyderen skrevet en dårlig applikation. Prøv at tale med udbyderen om, hvordan den skal implementeres, så den omtalte fejl ikke forekommer.

/mvh
</bole>
Avatar billede cf1234 Nybegynder
20. november 2012 - 17:39 #9
Udbyder tilbyder en løsning med QR kode hvor man kan definere en frekvens for antal scan før en vinder, hvor mange gange man kan vinde med sin mobiltelefon og andre nyttige ting....hvis det ikke lige var fordi at vinder/taber sider er url´s man selv skal definere.
Så længe brugeren scanner koden er der ingen problemer, men i og med de blot sender videre til min html side kan jeg ikke se jeg kan styre antal vindere - brugeren får jo url´en på vindersiden hvis han er heldig. Det er en forholdsvis anerkendt leverandør, men de ved ikke lige hvordan det skal håndteres. Jeg har stadig brug for eventuelle gode ideer. Der kan linkes til hvad/hvor som helst.
Avatar billede olebole Juniormester
20. november 2012 - 17:51 #10
Det er ikke til at råde, når man ikke kender noget til konkurrencens eller din applikations opbygning
Avatar billede cf1234 Nybegynder
20. november 2012 - 18:15 #11
Jeg er glad for du kaster dig ind i kampen :o)
Applikationen stilles til rådighed af ScanLife hvor man kan betale for en såkaldt lotteri OQ-kode.
Man opsætter få parametere så som vinder frekvens (hvor mange vindere kan der være, kan den samme telefon vinde flere gange og i så fald hver dag eller en gang om uge osv.).
Man skal også definere en taberside og en vinderside som man selv hoster. Når koden så scannes dirigeres brugere til den aktuelle side iht. de parametere man har sat.
Det fungere jo fint så længe man kan stole på at alle nøjes med at scanne koden, men mon ikke der er nogen der refresher i håb om en ekstra gevinst.

På min side er der ikke tale om en applikation men blot de to html sider systemet kræver at få defineret.
Avatar billede olebole Juniormester
20. november 2012 - 18:44 #12
Jeg forstår stadig ikke, hvad det går ud på - men det er åbenlyst, at konkurrencen ikke duer, når man kan vinde flere præmier ved et refreshe en resultatside. Hvor fejlen ligger - eller hvad du kan gøre - kan jeg intet vide om
Avatar billede cf1234 Nybegynder
20. november 2012 - 18:51 #13
Jeg ved ikke om du har læst historikken, men mit spørgsmål gik oprindeligt på om man på nogen måde kan forhindre en html side i at blive reloadet.
En mulighed var at komme over en redirect der sender en variabel der skal valideres på vindersiden, men det kan man ikke uden at sende variablen i url´en og så er det lige fedt.
Forstår nok ikke hvorfor du ikke forstår hvad det går ud på, men er helt med på at den aktuelle situation ikke duer.
Må nok droppe løsningen med ScanLife som frontend.
Avatar billede olebole Juniormester
20. november 2012 - 19:00 #14
Jeg ved ikke, hvad det er, du mener, jeg burde forstå. Jeg aner intet om din kode - så hvordan skulle jeg fortælle, hvad du skal gøre anderledes?
Avatar billede cf1234 Nybegynder
20. november 2012 - 19:30 #15
Inden dialogen tager en utilsigtede drejning lukker vi den her.

Panen:
Smid et svar jeg kan give point til og tak for din tålmodighed i løbet af dagen.
Avatar billede olebole Juniormester
20. november 2012 - 19:46 #16
Jeg har ingen anelse om, hvor du måtte have til hensigt at dreje dialogen hen, men må jo tro på dig. Jeg har blot påpeget det umulige i at hjælpe med koder, man ikke kender. Den betragtning tror jeg, det bliver svært at finde en webudvikler, som er uenig i  =)
Avatar billede cf1234 Nybegynder
20. november 2012 - 20:23 #17
Olebole....du mener det garanteret godt, men træn din spørge teknik. Jeg er ikke i nærheden af dig på ekspertisen - derfor søger jeg hjælp her. Af dig bliver jeg mødt med "Det er ikke til at råde, når man ikke kender noget til konkurrencens eller din applikations opbygning" som den første kontakt.
Jeg forsøger at forklare og får "Hvor fejlen ligger - eller hvad du kan gøre - kan jeg intet vide om".
Så er det nok at jeg ikke forstår hvorfor du bruger tid på tråden?

Hvis du læste det jeg skrev i ovenstående kan du forstå at jeg jo ikke kan vise dig kode jeg ikke har adgang til. Jeg søgte derfor en kreativ work around som tilsynelandende ikke findes.
Det er fair at den ikke findes men jeg syntes dine input virker meget irriteret i betragtning af du helt selv vælger om du vil svare.

Med din accept lukker vi den der - det her er der i hvert fald ingen der har glæde af :o)
Avatar billede olebole Juniormester
20. november 2012 - 20:41 #18
"Så er det nok at jeg ikke forstår hvorfor du bruger tid på tråden?"

Hvorfor jeg bruger tid på tråden? Det skyldes såmænd blot, at jeg ønsker at lære dig de mest grundlæggende teknikker, hvad angår at stille et spørgsmål - og få dig til at forstå, hvad det er muligt at svare på.

Hvad enten du har mulighed for at vise noget kode eller ej, ændrer det ikke på det umulige i at give dig et svar. Dine luftige beskrivelser er ikke nok.

Da det synes umuligt at lære dig at stille et hensigtsmæssigt spørgsmål, som det er muligt at besvare, har du sikkert ret i, at det bedste ville være at lukke tråden
Avatar billede olebole Juniormester
20. november 2012 - 20:57 #19
Din forklaring i tråden hænger ganske enkelt ikke sammen. Hvis konkurrencen foregår på et andet domæne - og afsluttes med at sende brugeren videre til et HTML-dokument på dit domæne - er det rystende ligegyldigt, hvormange gange brugeren refresher din HTML-side.

Det kan der rent teknisk ikke ske mere ved, end hvis jeg opdaterer Google.com en håndfuld gange. Det vil brugeren ikke kunne vinde flere gevindster ved. Med mindre, der - som jeg formoder - er noget, du ikke har fortalt os
Avatar billede cf1234 Nybegynder
20. november 2012 - 21:18 #20
Så stopper vi der! Dine antydningers kan du holde for dig selv. Jeg har stillet et konkret spørgsmål og du insistere fortsat på at mystificere min henvendelse. Det er muligt at der ikke er nogen webudviklere der kan hjælpe mig, men de opfører sig ikke som klovne.
Herfra slutter det nu - er du primitiv nok til at fortsætter så fyr bare løs.
Avatar billede olebole Juniormester
20. november 2012 - 21:52 #21
Ellers tak, jeg har ikke i sinde at medvirke i dit show! Folk, der kalder andre for klovne - blot fordi de ikke evner at stille et spørgsmål, der kan besvares - bør man ikke spilde mere tid på end højst nødvendigt.

Prøv, om ikke du kan finde det overkommeligt at udvise bare en smule respekt for folk, der tilbyder dig at give ganske gratis, professionel hjælp, når du kalder! Lad være med at lade dine egne sparsomme kommunikationsevner gå ud over andre!

Men du derudover har du fuldstændig ret: Jeg er webudvikler, og jeg har ikke opført mig som en klovn i denne tråd. Det har jeg ladet andre om!
Avatar billede wordwrap Nybegynder
21. november 2012 - 17:38 #22
Bare lige for at blande mig..

Hvis jeg ellers har forstået det korrekt, så scanner folk en kode ind på deres telefon, og alt efter deres held lander de på en vinder eller taber side på din side..

Du må vel få nogen data med over fra udbyderen, som du gør et eller andet med, så du kan kontakte en evt. vinder ? gemmer disse data i en database, eller hvad du nu gør..

Men uanset hvad, hvorfor ikke bare lave en kontrol på en given session.. hvis den ikke er sat må de se vinder siden, og du starter den session.. er den sat få de at vide de er nogen fuskere ?

Du kunne jo os lave en kontrol på de data jeg går ud fra du gemmer et eller andet sted, for at se om de skulle findes fra tidligere ??

Med alt det sagt, så må jeg give olebole ret... det er ikke nemt at hjælpe ret meget uden bare lidt kode.. du kan naturligvis ikke give meget kode fra udbyderen, men du har noget kode til en vinder / taber side.. evt. et link til udbyderen af den givne konkurrence osv..
Avatar billede cf1234 Nybegynder
21. november 2012 - 19:12 #23
Du blander dig ikke - du hjælper :o)

Grundlæggende redirecter udbyderen udelukkende så der kommer ikke brugbar data med over. Det sker på baggrund af en scanningsfrekvens af koden. Jeg har haft kontakt med dem igen i dag, og de taler nu om at man kan foretage en validering på den header der bliver sendt med fra deres server. Headeren vil jo alt andet lige mistes ved refresch eller?

Html siderne er der ikke det store hokus pokus ved - her er den ene:

<!DOCTYPE html >
<html>
<head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
    <script type="text/javascript" src="includes/jquery-1.7.2.prod.js"></script>
    <script type="text/javascript" src="includes/jquery.ScratchCard.prod.js"></script>
<link href="jquery.mobile.structure-1.0.min.css" rel="stylesheet" type="text/css"/>

    <script type="text/javascript">

        $(function(){
            $(".scratchCard").ScratchCard({
               
                revealRadius:25,
                percentComplete:60,
                revealOnComplete:true,
                updateOnMouseMove:true,
                onScratchComplete : function(percentScratched) {
                    $('#mydiv').html('Du har 4 ens æg og dermed vundet en dejlig præmie!<br><br><input name="test" type="text" size="40" placeholder="Navn"/><br><input name="test" type="text" size="40" placeholder="Adresse"/><br><input name="test" size="40" type="text" placeholder="Postnr/By"/><br><input name="test" type="text" size="40" placeholder="Telefon"/><br><input type="image" src="images/knap.jpg" alt="send data"/>');
                },
                onUpdate:function(percentScratched) {
                    $("#percentText").html("Percent: "+percentScratched)
                }
        });
       
           
        });

   
    </script>
</head>
<body>
<div id="page" data-role="page" data-theme="a">
<div data-role="header" data-theme="a"><center><img src="logo.png" width="90%"></center><br><br>
<div class="scratchCard" data-backGroundImage="images/scratchIt3.jpg" data-foreGroundImage="images/reveal3.jpg" align="center"></div>
<div data-role="content" align="center"><form action="send.php" method="post">
<p id="mydiv"></p></form></div></div>
<div data-role="footer" data-theme="d"><br>
        <center>logo_small.png</center><br>
    </div></div>


</body>

</html>


Vinderens person data kan også skrives i db, men man vil jo stadig kunne refresh siden og udfylde med hele familien.

Det er det jeg har og formår.....og så en god ide :O)
Avatar billede wordwrap Nybegynder
21. november 2012 - 20:03 #24
nogen super løsning ligger jeg ikke inde med..
hvis de vil snyde dig skal det nok lykkes dem uanset hvor meget du knokler løs..

Mig bekendt er header data ikke noget man bør satse for meget på, men kan da tage fejl..

helt basic med en session kan du lege lidt med noget i stil med:

<?php session_start();
if(!isset($_SESSION['winner'])){
    $_SESSION['winner'] = 'some value';
    echo 'du har vundet';
   
}else{
   
    echo 'du har vist været her før';
}
?>

Det er så skrabet som det kan blive.. og vil kun virke så længe den session er aktiv, derefter kan de igen få adgang til siden og udfylde, hvad der skal udfyldes igen.. Med andre ord ikke en løsning jeg ville turde satse for meget på..

Du kan os lege med cookies, hvor du kan angive en periode hvor den skal være aktiv.. problemet med dem er så at de kan slettes manuelt af brugeren.. og ikke alle tillader du gemmer cookies..

Tror du skal gøre op med dig selv hvor meget tid du vil bruge på det her / hvor stort problemet reelt ville kunne blive..
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

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