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>