Kai Hildebrandt: Pfad für Cookies änderbar?

Hallo zusammen.

Ich habe eine Umfrage realisiert, die als "Sicherung" (dass keine Stimmen mehrfach abgegeben werden) Cookies benutzt. Ich habe die Umfrageformulare durchnummeriert und spiechere durch Komma getrennt einfach alle Werte ab.

Der Inhalt des Cookies sieht dann so aus:
Stimmen=2,1,3
(immer in Reihenfolge der Abstimmung)

Soweit funktioniert das noch, nur jetzt habe ich ein Formular in einen Unterordner umgezogen und auf einmal sind zwei Cookies da. Damit ist das mit der Sicherung zum T....!

Kann man irgendwie den Ort festlegen, woher der Browser das Cookie beziehen soll?

Zur Sicherheit hier nochmal der gesammte JavaScript Code:

function StimmeAbgeben(Umfrage)
{
 /* Ohne Kekse keine Stimme! ;-) */
 if(navigator.cookieEnabled) {

/*   Lebensdauer des Cookies berechnen
  *   Ein Jahr sollte reichen !?
  */
   var Verfall = new Date();
   var einJahr = Verfall.getTime() + (365 * 24 * 60 * 60 * 1000);
   Verfall.setTime(einJahr);

if(document.cookie) {
     var Stimmen=document.cookie;
     Stimmen=Stimmen.slice(8,Stimmen.length);
     Stimmen=Stimmen.split(',');

if(Stimmen.length > 0) {
       /* Pruefen, ob fuer diese Umfrage schon abgestimmt wurde */
       for(i=0; i<Stimmen.length; i++) {
         if(Stimmen[i]==Umfrage) {
           return false;  /* Formular nicht abschicken */
         }
       }
     }
   }

if(Stimmen) {
     Stimmen="Stimmen="+Stimmen.join(',');
     Stimmen=Stimmen.concat(','+Umfrage);
   } else {
     var Stimmen="Stimmen="+Umfrage;
   }

Stimmen=Stimmen+"; expires=" + Verfall.toGMTString();

// alert("DEBUG: "+Stimmen);

document.cookie=Stimmen;
 }
}

function StimmeAbgegeben(Umfrage)
{
 if(document.cookie) {
   var Stimmen=document.cookie;
   Stimmen=Stimmen.slice(8,Stimmen.length);
   Stimmen=Stimmen.split(',');

if(Stimmen.length > 0) {
     /* Pruefen, ob fuer diese Umfrage schon abgestimmt wurde */
     for(i=0; i<Stimmen.length; i++) {
       if(Stimmen[i]==Umfrage) {
         return true;
       }
     }
   }
 }
 return false;   /* Stimme noch nicht abgegeben */
}

Schonmal danke fürs Helfen.
  Kai

  1. hi,

    Ich habe eine Umfrage realisiert, die als "Sicherung" (dass keine Stimmen mehrfach abgegeben werden) Cookies benutzt.

    wie reagiert dein konzept darauf, wenn ich den cookie einfach lösche, und anschliessend erneut abzustimmen versuche?

    Soweit funktioniert das noch, nur jetzt habe ich ein Formular in einen Unterordner umgezogen und auf einmal sind zwei Cookies da. Damit ist das mit der Sicherung zum T....!
    Kann man irgendwie den Ort festlegen, woher der Browser das Cookie beziehen soll?

    dein problem wird m.e. in http://selfhtml.teamone.de/javascript/objekte/document.htm#cookie unter dem beispiel im abschnit "Beachten Sie" beschrieben.
    pfadangaben scheinen per JS gesetzte cookies anscheinend gar nicht zu unterstützen(?).

    aber mal grundsätzlich zum konzept:
    da der javascript-code frei einsehbar ist, kann daran nach belieben herummanipuliert werden.
    jemanden, der sich ein bisschen mit den grundlagen von html & js auskennt, wird dein javascript also absolut nicht daran hindern, mehrfach abzustimmen.

    wenn du das verfahren halbwegs sicher gestalten willst, benutzte eine serverseitige technik wie z.b. php.

    gruss,
    wahsaga