Javascript Cookies

  • JavaScript

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von MaxeStudios.

    Javascript Cookies

    Hey,

    ich hab mich ans Thema HTML, CSS, JS ran getraut. Finds aufjedenfall interresant, da ich sonst mit VB .Net,... arbeite. Aber mal zu meiner Frage:

    Ich bekomm es nicht hin, Cookies aus anderen "functions" zu bearbeiten.
    Zwar veröffentliche ich ungern mein Code, aber hierfür schon :P

    HTML-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    3. <head>
    4. <title>Meine Website</title>
    5. <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
    6. <link rel="stylesheet" type="text/css" href="images/style.css" />
    7. </head>
    8. <body>
    9. <div id="container">
    10. <div id="header"> Meine Website <b></b>
    11. <h2>Blablabla</h2>
    12. </div>
    13. <meta name="viewport" content="width=device-width, initial-scale=1">
    14. <style>
    15. .alert {
    16. padding: 20px;
    17. background-color: #f44336;
    18. color: white;
    19. opacity: 1;
    20. transition: opacity 0.6s;
    21. margin-bottom: 15px;
    22. }
    23. .alert.success {background-color: #4CAF50;}
    24. .alert.info {background-color: #2196F3;}
    25. .alert.warning {background-color: #ff9800;}
    26. .closebtn {
    27. margin-left: 15px;
    28. color: white;
    29. font-weight: bold;
    30. float: right;
    31. font-size: 22px;
    32. line-height: 20px;
    33. cursor: pointer;
    34. transition: 0.3s;
    35. }
    36. .closebtn:hover {
    37. color: black;
    38. }
    39. </style>
    40. <script language="JavaScript">
    41. if(navigator.appName =="Netscape")
    42. Zaehlerstand();
    43. function Zaehlerstand(Anzahl)
    44. {
    45. var Zahlstart, Zahlende, Anzahl;
    46. if(window.document.cookie)
    47. {
    48. Zahlstart = window.document.cookie.indexOf("=") + 1;
    49. Zahlende = window.document.cookie.indexOf(";");
    50. if (Zahlende == -1)
    51. Zahlende = window.document.cookie.length;
    52. Anzahl = parseInt(window.document.cookie.substring(Zahlstart, Zahlende));
    53. Anzahl++;
    54. window.document.cookie = "Zaehler=" + Anzahl + "; expires=31-Dec-97 GMT";
    55. }
    56. else
    57. {
    58. window.document.cookie = "Zaehler=1; expires=31-Dec-97 GMT";
    59. Anzahl = 6;
    60. }
    61. window.alert("Diesen Monat haben sie schon " + Anzahl + " Stunde(n) eingetragen.");
    62. }
    63. function hreset()
    64. {
    65. windows.document.cookie = "Zaehler=0; expires=31-Dec-97 GMT";
    66. }
    67. function oneh()
    68. {
    69. Zaehlerstand++;
    70. window.document.cookie = "Zaehler=1; expires=31-Dec-97 GMT";
    71. }
    72. function hshow()
    73. {
    74. Zaehlerstand()
    75. }
    76. </script>
    77. <h1> Tolle Überschrift </h1>
    78. <p> </p>
    79. <h2>Blupdiewupp<span class="black">Bla Überschrift</span></h2>
    80. <p>Bliblablup<br></p>
    81. <INPUT TYPE="button" Style="WIDTH:600" WIDTH="600" onclick="hshow()" Value="Monatliche Stunden anzeigen">
    82. <INPUT TYPE="button" Style="WIDTH:600" WIDTH="600" onclick="hreset()" Value="Neuer Monat">
    83. <INPUT TYPE="button" Style="WIDTH:600" WIDTH="600" onclick="oneh()" Value="+1 Stunde">
    84. </div>
    85. <div id="footer"> &copy; 2018 Meine Firma</a> --- Blup</div>
    86. </div>
    87. </body>
    88. </html>


    (INHALT: Man soll mit Cookies Stunden eintragen können, Cookies weil diese gespeicher werden solln und beim nächsten website besuch wieder angezeigt werden solln, diese Stunden kann man resetten (für mein zweck monatlich) und jeweils 1 stunde hinzufügen)
    Grob gesagt funktioniert das was ich vorhab nicht, würd mich über antworten freuen, ich steh komplett aufm Schlauch :D



    Herzlichen Dank, Louis :)
    Viel Erfolg,
    MaxeStudios





    <offtopic>Das ist aber nett das du uns deinen Code zeigt</offtopic>

    Warum Cookies?
    Irgendwie habe ich das Gefühl du hast Cookies nicht verstanden.

    Das sieht eher nach IndexedDB aus
    developer.mozilla.org/de/docs/IndexedDB


    <nochmals offtopic>wer sich so tolle Namen wie xx-Studios, oder so gibt, sollte etwas Professioneller sein</offtopic>
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Für die gewünschte Aufgabe sind Cookies, wie schon angemerkt wurde, nicht gerade vorgesehen. Cookies sind mehr als Hilfe für die Server-Seite gedacht. Dementsprechend werden sie für gewöhnlich auch nur dort erstellt und gelesen.

    JavaScript bietet eben nur die Möglichkeit, diese dann auf der Client-Seite zu manipulieren.
    Deswegen muss man sie aber nicht gleich für ausschließlich Clientseitige Aufgaben nutzen.

    Für solche Aufgaben gibt es den WebStorage (LocalStorage und SessionStorage). Oder, wenn es um etwas größere Datenmengen geht, IndexedDB.

    Der WebStorage ist hierbei am leichtesten zu bedienen:

    Quellcode

    1. localStorage.Zaehler = 1;
    2. localStorage['Zaehler'] = 1;
    3. localStorage.setItem('Zaehler', 1);


    genauso auslesen, nur dann bei letzterem eben mit getItem().

    Wenn du aber unbedingt Cookies verwenden möchtest, schaue dir mal deine "expires"-Werte an. Die sind alle auf den 31. Dezember 1997 datiert.
    Wenn ein Cookie abläuft (expired), also das angegebene Datum in der Vergangenheit liegt, dann wird dieser gelöscht ;)

    Ansonsten ist es eben eine relativ komplizierte Sache mit den Cookies in JavaScript. Da gibt es so viele Stellen, wo man anecken kann. Wenn man sie verwenden will, nimmt man dann am besten die getCookie() und setCookie() Funktionen von w3schools: w3schools.com/js/js_cookies.asp

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „MA-Maddin“ ()

    @MrTrebron danke für den Hinweis, bin wie schon gesagt neu im Thema web :) und was hat denn ein Name gleich mit einem "Qualitätsversprechen" zu tun?

    @MA-Maddin danke für die ausführliche Hilfe :D
    Viel Erfolg,
    MaxeStudios