Onetime "Agree" "Dont Agree"???

Tags:    javascript

Jeg har lavet sådan et par "Agree" "Dont agree" knapper. Den ene redirecter til siden og den anden tilbage til google, EFTER der har kommet en Alert box op med: "Du accepterede. Gå videre" eller "Du accepterede ikke".

Men denne "accept"-side skal kun være der 1 gang i livstid (medmindre ny browser eller sådan noget)

Hvordan får jeg den kun 1 gang pr PC?

UPDATE: Hvordan gør jeg også sådan så de ikke bare kan taste selve hjemmeside siden og komme ind? de SKAL trykke AGREE Først



Indlæg senest redigeret d. 01.03.2011 19:51 af Bruger #16347
10 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Du skal arbejde med Cookies, søg på google efter en måde at arbejde med Cookies.

Du gemmer simpelthen din cookie for flere år, så næste gang den samme besøgende med cookies kommer, så bruger den det data der ligger i den!



Du kan tjekke med cookies, hvis det skal gøres med Javascript. Før jeg viser dig koden skal du dog være klar over at både Javascript og Cookies kan slås fra af brugeren og hvis du totalt vil udelukke en bruger medmindre de har trykket "Agree", skal du over i et serverside sprog så som PHP. En gylden regel inden for programmering er "Stol aldrig på klienten" og både Cookies og Javascript køre på klienten (browseren).

Til at sætte og læse cookies poster jeg funktionerne fra
http://techpatterns.com/downloads/javascript_cookies.php
og derefter viser jeg hvordan du kan tjekke en værdi.

Med Javascript kan du sætte en cookie sådan her, dog er det lidt kompliceret:
Fold kodeboks ind/udJScript kode 


Så i dit tilfælde kan du gøre sådan her, hvis du husker at have begge funktioner defineret først:
Fold kodeboks ind/udJScript kode 

Fold kodeboks ind/udHTML kode 


Her har jeg også tilføjet en "Did I agree?" knap til at kalde validateAgree() funktionen, som så tjekker om man er enig, og hvis ikke sender den en til www.google.dk.

Du kan selv tilpasse funktionerne, eller kalde dem lige efter de er defineret, som du ønsker at gøre på de sider man skal have givet sit samtykke for at se.



Hmm....
Du må meget undskylde. Du har en meget lang og kompliceret forklaring. Måske er den nem og forstå, men jeg forstår ikke halvdelen af det.
.. Hmm, mit script ser sådan ud:

<html>
<head>
<title> Enter the Site </title>
<script type="text/javascript">
function AgreePopUp()
{
alert("You agreed! Press OK to direct to the site!");
}
function AgreeEnter()
{
window.location="index.html";
}
</script>
<script type="text/javascript">
function DisAgreePopUp()
{
alert("You disagreed! Directing you to google!");
} function DisAgreeEnter()
{
window.location="http://google.com/";
}
</script>

</head>

<body>
<center>
<font-size="15px">
<br />
<br />
<br />
<p> Do you agree to the <a href="terms.html">Terms and Conditions</a>?</p>
</font>
<br />
<br />
<br />
<br />
<br />
<br />
<input type="button" onclick="AgreePopUp(); AgreeEnter();" value="» I agree">
<input type="button" onclick="DisAgreePopUp(); DisAgreeEnter();" value="» I dont agree">

</center>
</body>

</html>


Hvad skal der ændres ved det?



Du har næsten den samme kode som jeg har. Det er bare det første stykke kode der er meget langt fordi det er så kompliceret at skrive/læse cookies i Javascript.

Se på de to sidste stykker kode, så vil du se at vi faktisk har to meget ens stykker kode, bare at jeg har den ekstra logik der tjekker om en cookie er skrevet og dens værdi :)



Forstår det stadig ikke. Hvor skal de der cookies hen?

Og hvordan gør man enter.html til siden standard side på sin webhost? Hvis nu man skal ha den til at gå ind på enter.html istedet for index.html?



I toppen af index.html tjekker om du om agree-cookien er sat. Hvis den er sat til agree (nu må brugeren se din side) så gør ingenting. Hvis cookien derimod ikke er sat (han har ikke sagt "I agree") så smid ham hen til enter.html (document.location="enter.html")

Emil har rimelig specifikt løst det meste af dit problem for dig. Sæt dig ned med hans kode og google og sørg for at du forstår hvad hans kode gør linje for linje. Og så implementer det.



Det virker ikke. Når jeg trykker på knappen sker der ikke en dyt. Min kode:
Fold kodeboks ind/udKode 




:(



Det er fordi du ikke læste min post ordenligt.
Med Javascript kan du sætte en cookie sådan her, dog er det lidt kompliceret:
Fold kodeboks ind/udJScript kode 



Så i dit tilfælde kan du gøre sådan her, hvis du husker at have begge funktioner defineret først


Det er de to funktioner der defineres i kode eksemplet jeg har citeret her. De er ikke standard javascript, men gør det langt lettere at skrive og læse cookies.



Indlæg senest redigeret d. 02.03.2011 19:16 af Bruger #10647
Virker ikke. Kan du ikke skrive HELE den kode jeg skal istedet for i bidder? Det giver ikke mening! ER NY!



t