tag:forum.selfhtml.org,2005:/self JavaScript: Session statt permanenter Cookie in Firefox – SELFHTML-Forum 2018-11-22T08:59:30Z https://forum.selfhtml.org/self/2018/nov/19/javascript-session-statt-permanenter-cookie-in-firefox/1736726?srt=yes#m1736726 Sayn 2018-11-19T14:59:42Z 2018-11-19T15:07:43Z JavaScript: Session statt permanenter Cookie in Firefox <p>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:</p> <pre><code class="block language-javascript"><span class="token keyword">var</span> regdaten <span class="token operator">=</span> <span class="token punctuation">[</span>name<span class="token punctuation">,</span>matrikel<span class="token punctuation">,</span>fachsemester<span class="token punctuation">,</span>studiengang<span class="token punctuation">,</span>elekmail<span class="token punctuation">,</span>telefon<span class="token punctuation">,</span>nachhilfeBk<span class="token punctuation">,</span>nachhilfeAb<span class="token punctuation">,</span>passwort<span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">var</span> cookie_string <span class="token operator">=</span> <span class="token string">"regDaten="</span><span class="token operator">+</span>regdaten<span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">";path=/;expires="</span><span class="token operator">+</span><span class="token function">cookie_verfall</span><span class="token punctuation">(</span><span class="token number">365</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">";"</span><span class="token punctuation">;</span> document<span class="token punctuation">.</span>cookie <span class="token operator">=</span> cookie_string<span class="token punctuation">;</span> </code></pre> <p>Zum Festlegen der Speicherdauer habe ich mir dazu folgende Funktion geschrieben:</p> <pre><code class="block language-javascript"><span class="token keyword">function</span> <span class="token function">cookie_verfall</span><span class="token punctuation">(</span><span class="token parameter">tage<span class="token punctuation">,</span> stunden</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">var</span> jetzt <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> zeit <span class="token operator">=</span> jetzt<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> zukunft <span class="token operator">=</span> zeit <span class="token operator">+</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">(</span>tage<span class="token operator">*</span><span class="token number">24</span><span class="token punctuation">)</span><span class="token operator">+</span>stunden<span class="token punctuation">)</span><span class="token operator">*</span><span class="token number">60</span><span class="token operator">*</span><span class="token number">60</span><span class="token operator">*</span><span class="token number">1000</span><span class="token punctuation">)</span><span class="token punctuation">;</span> jetzt<span class="token punctuation">.</span><span class="token function">setTime</span><span class="token punctuation">(</span>zukunft<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> haltbarkeit <span class="token operator">=</span> jetzt<span class="token punctuation">.</span><span class="token function">toUTCString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> haltbarkeit<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Vielen Dank im Voraus für eure Hilfe!</p> https://forum.selfhtml.org/self/2018/nov/19/javascript-session-statt-permanenter-cookie-in-firefox/1736727?srt=yes#m1736727 Sayn 2018-11-19T15:02:13Z 2018-11-19T15:02:43Z JavaScript: Session statt permanenter Cookie in Firefox <p>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);</p> https://forum.selfhtml.org/self/2018/nov/19/javascript-session-statt-permanenter-cookie-in-firefox/1736754?srt=yes#m1736754 ursus contionabundo 2018-11-20T08:50:38Z 2018-11-20T08:51:01Z JavaScript: Session statt permanenter Cookie in Firefox <p>Hm.</p> <p>Ein Test Deiner Funktion</p> <pre><code class="block language-js"><span class="token keyword">function</span> <span class="token function">cookie_verfall</span><span class="token punctuation">(</span><span class="token parameter">tage<span class="token punctuation">,</span> stunden</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">var</span> jetzt <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> zeit <span class="token operator">=</span> jetzt<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> zukunft <span class="token operator">=</span> zeit <span class="token operator">+</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">(</span>tage<span class="token operator">*</span><span class="token number">24</span><span class="token punctuation">)</span><span class="token operator">+</span>stunden<span class="token punctuation">)</span><span class="token operator">*</span><span class="token number">60</span><span class="token operator">*</span><span class="token number">60</span><span class="token operator">*</span><span class="token number">1000</span><span class="token punctuation">)</span><span class="token punctuation">;</span> jetzt<span class="token punctuation">.</span><span class="token function">setTime</span><span class="token punctuation">(</span>zukunft<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> haltbarkeit <span class="token operator">=</span> jetzt<span class="token punctuation">.</span><span class="token function">toUTCString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> haltbarkeit<span class="token punctuation">;</span> <span class="token punctuation">}</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span> <span class="token function">cookie_verfall</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>liefert das erwartete Ergebnis.</p> <pre><code class="block">Wed, 21 Nov 2018 09:34:01 GMT </code></pre> <p>Fazit: Der Fehler liegt wohl außerhalb der gezeigten Funktion.</p> https://forum.selfhtml.org/self/2018/nov/19/javascript-session-statt-permanenter-cookie-in-firefox/1736892?srt=yes#m1736892 TS ts-self@online.de https://bitworks.de 2018-11-22T08:59:30Z 2018-11-22T08:59:30Z JavaScript: Session statt permanenter Cookie in Firefox <p>Hello,</p> <p>wem sollen denn die Daten zur Verfügung stehen? Nur dem jeweiligen Client oder auch dem Server?</p> <p>Wenn sie nur am Client benötigt werden, wäre vielleicht <a href="https://wiki.selfhtml.org/wiki/JavaScript/Web_Storage" rel="nofollow noopener noreferrer">Local Storage</a> der bessere Weg für Dich?</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn.<br> </div> https://forum.selfhtml.org/self/2018/nov/19/javascript-session-statt-permanenter-cookie-in-firefox/1736730?srt=yes#m1736730 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2018-11-19T15:13:12Z 2018-11-19T15:13:12Z JavaScript: Session statt permanenter Cookie in Firefox <p>@@Sayn</p> <blockquote> <p>Ich sehe gerade, dass er die *-Zeichen in der cookie_Verfall-Funktion nicht übernommen hat.</p> </blockquote> <p>Hätte er (wer?), wenn du den Code als solchen ausgezeichnet hättest – wie in der Hilfe <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Formatierung der Beiträge</a> angegeben. Was die <code>*</code> im Fließtext bewirken, erfährst du auch dort.</p> <p>Ich hab das mal für dich nachgeholt.</p> <p>LLAP </p> <div class="signature">-- <br> <em>„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“</em> —Kurt Weidemann </div> https://forum.selfhtml.org/self/2018/nov/19/javascript-session-statt-permanenter-cookie-in-firefox/1736731?srt=yes#m1736731 Sayn 2018-11-19T15:17:44Z 2018-11-19T15:17:44Z JavaScript: Session statt permanenter Cookie in Firefox <p>Danke. Weiß ich dann fürs nächste Mal. </p>