Sayn: JavaScript: Session statt permanenter Cookie in Firefox

Hi, ich habe mich die letzten Tage mit einem HTML/CSS/JavaScript Projekt fürs Studium auseinander gesetzt und möchte dabei gerne Cookies verwenden. Nun habe ich das Problem, dass ich statt einen dauerhaften Cookie zu bekommen, dieser nur für eine Session gespeichert wird und ich nicht weiß, wie ich das beheben soll. Im Grunde möchte ich ein Array in einem Cookie mit dem Verfallsdatum von 365 Tagen speichern:

var regdaten = [name,matrikel,fachsemester,studiengang,elekmail,telefon,nachhilfeBk,nachhilfeAb,passwort];

var cookie_string = "regDaten="+regdaten.join()+";path=/;expires="+cookie_verfall(365,0)+";";
document.cookie = cookie_string;

Zum Festlegen der Speicherdauer habe ich mir dazu folgende Funktion geschrieben:

function cookie_verfall(tage, stunden){
	var jetzt = new Date();			
	var zeit = jetzt.getTime();		
	var zukunft = zeit + (((tage*24)+stunden)*60*60*1000); 
	jetzt.setTime(zukunft);	
	var haltbarkeit = jetzt.toUTCString();
	return haltbarkeit;
}


Vielen Dank im Voraus für eure Hilfe!

  1. Ich sehe gerade, dass er die *-Zeichen in der cookie_Verfall-Funktion nicht übernommen hat. So müsste es aussehen: var zukunft = zeit + (((tage * 24)+stunden) * 60 * 60 * 1000);

    1. @@Sayn

      Ich sehe gerade, dass er die *-Zeichen in der cookie_Verfall-Funktion nicht übernommen hat.

      Hätte er (wer?), wenn du den Code als solchen ausgezeichnet hättest – wie in der Hilfe Formatierung der Beiträge angegeben. Was die * im Fließtext bewirken, erfährst du auch dort.

      Ich hab das mal für dich nachgeholt.

      LLAP 🖖

      --
      „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      1. Danke. Weiß ich dann fürs nächste Mal. 👍

  2. Hm.

    Ein Test Deiner Funktion

    function cookie_verfall(tage, stunden){
    	var jetzt = new Date();			
    	var zeit = jetzt.getTime();		
    	var zukunft = zeit + (((tage*24)+stunden)*60*60*1000); 
    	jetzt.setTime(zukunft);	
    	var haltbarkeit = jetzt.toUTCString();
    	return haltbarkeit;
    }
    
    console.log( cookie_verfall(1, 1) );
    

    liefert das erwartete Ergebnis.

    Wed, 21 Nov 2018 09:34:01 GMT
    

    Fazit: Der Fehler liegt wohl außerhalb der gezeigten Funktion.

  3. Hello,

    wem sollen denn die Daten zur Verfügung stehen? Nur dem jeweiligen Client oder auch dem Server?

    Wenn sie nur am Client benötigt werden, wäre vielleicht Local Storage der bessere Weg für Dich?

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.