Toon posts:

[js] redirect bij detectie van cookie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een raar probleempje... ik ben bezig met een poll. Deze moet beveiligd worden door middel van een cookie voor meerdere kliks van dezelfde gebruiker. Nu wil ik als er op de button stemmen geklikt wordt dat er door middel van onderstaand script gekeken wordt of er uberhaupt een cookie staat en als dat zo is of er dan ook het poll_id in staat van de huidige poll...

Nu dacht ik dus ipv de document.write een redirect erin te stoppen die ik vaker gebruik bij detectie voor schermresolutie. Die werkt dan ook normaal gesprokken goed. Behalve in dit script. De detectie doet het overigens wel goed... alleen wordtie niet geredirect naar bijvoorbeeld poll.php?cst=ns

Wat klopt er niet of waar denk ik op de verkeerde manier??? Ligt het aan het versturen van een form "overruled" die de redirect uit het stukje JS?
Heb onder de code ook de manier van aanroepen gezet na het versturen van het formulier.

Ik hoop dat jullie duidelijkheid kunnen geven...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$script = "<script type=\"text/javascript\">
<!--
function CookieCheck(){
if (document.cookie != \"\"){
var a = document.cookie.split(\"=\")[1];
var linka = \"poll.php?cst=js\";
var linkb = \"poll.php?cst=ns\";
    if (a == $poll_id){
    document.write (\"er is al gestemd\");
    window.location.href= linka;
    }
    else {
    document.write (\"er is wel een cookie maar er is nog niet gestemd op deze poll\");
    window.location.href= linkb;
    }
}
    else {
    document.write (\"er is nog geen cookie aangemaakt\");
    document.location.href= linkb;
    }
}
-->
</script>
";
PHP:
1
<form method="post" onsubmit="CookieCheck()">

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

location is een eigenschap van window, niet van document (r.19)
Gebruik liever de "nette OO"-variant van dit soort dingen:
code:
1
window.location.replace ( link );

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Ondanks dat... werkt dus niet. Heb al aardig wat combi's geprobeerd ;) Ik ben geen JS expert, maar volgens mij doe ik nu niet echt gekke dingen..
Misschien een ander ideetje???

  • WvdWest
  • Registratie: Augustus 2002
  • Niet online
Als ik het dus goed begrijp worden de document.write statements wel uitgevoerd maar de redirect niet?

Krijg je na het submiten in je browser nog een script error?

Kan ik ergens het probleem bewonderen?

I'm not a complete idiot - several parts are missing.


Verwijderd

Topicstarter
Je kan ff nergens problemen bewonderen :p Wat ik nu gedaan heb is het scriptje een beetje verbouwd. De document.write eruit gesloopt. window.location.href gebruikt voor alle redirects.

In de eerste testopstelling heb ik de functie met een body onload aangeroepen en dat ging perfect!
<body onload="koekiecheck(3)">

In de tweede proefopstelling wou ik het id versturen naar het script wat ik heb gemaakt die daarna naar de juiste pagina moet gaan... te vergeefs
<form onsubmit="koekiecheck(pollnr)"> (pollnr is een hidden veld van het form)

Als ik de gegevens als post verstuur krijg ik de error dat ik daar geen toestemming voor heb.... kortom het script werkt nu Alleen gaat het in combinatie met het versturen van variabele vanuit een formulier fout... Maar wat?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:31

crisp

Devver

Pixelated

document.write kan je niet meer gebruiken als de pagina reeds geparsed is; je overschrijft daarmee het hele document...
En waar 'post' je eigenlijk naar; ik zie geen action in je form...

Intentionally left blank


Verwijderd

Topicstarter
Als het goed is hoef je niet per se een action op te geven. En dat wil ik eigenlijk ook niet omdat mij JS dat moet afhandelen... ff dus het hele script hieronder misschien dat jullie zien wat ik over het hoofd zie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Cookie Check</title>

<script type="text/javascript">
<!--
function koekiecheck(pollnr){
    
    if (document.cookie == ""){
    var datum;
    var id;
    id = pollnr - 1;
    datum = new Date;
    datum.setMonth(datum.getMonth()+3);
    document.cookie = "pollid="+id+"; expires=" + datum.toGMTString();
    }

    var a = document.cookie.split("=")[1];
    var linka = "poll1.php?cst=js";
    var linkb = "poll1.php?cst=ns";
    var linkc = "poll.php";
        if (a == pollnr){
        window.location.href = linka ;
        }
        else {
        window.location.href = linkb ;
        }
}
-->
</script>

</head>

<body>

<form name="formpie" method="get">
<input type="hidden" name="pollnr" value="3">
<input type="submit" name="submit" value="stem" onclick="koekiecheck(3)">
</form>

</body>
</html>

Verwijderd

Topicstarter
Ben er al uit 8)7 Bedankt voor de tips (was dus toch een action ;) )
code:
1
2
3
<form name="formpie" method="get" action="javascript:koekiecheck(3)">
<input type="submit" name="submit" value="stem">
</form>

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:31

crisp

Devver

Pixelated

Verwijderd schreef op 12 november 2002 @ 16:15:
Ben er al uit 8)7 Bedankt voor de tips (was dus toch een action ;) )
code:
1
2
3
<form name="formpie" method="get" action="javascript:koekiecheck(3)">
<input type="submit" name="submit" value="stem">
</form>
Of een return false geven in je onsubmit...

Intentionally left blank


Verwijderd

Topicstarter
Kwam er achter dat als je cookies uit schakeld in de browser dat er met mijn script de bezoeker kan blijven stemmen. Hoe kan je checken of de gebruiker cookies heeft aan staan??? Of kan ik dat niet en moet ik mijn functie aanpassen??
Pagina: 1