Ulf: Cookie schreiben

Hallo zusammen, ich habe da ein Problem:

Hmmm, also, ich versuche per JavaScript ein Cookie zu schreiben, nur tritt immerwieder ein Fehler in der Zeile 14 auf:

Das Objekt unterstützt die Eigenschaft oder Methode nicht.

Hier der Quelltext:

<html>
<head>
<title>Service-Formular</title>
<meta name="author" content="Ulf Wuestefeld">
<link rel="stylesheet" href="../service.css" type="text/css">
<script type="text/javascript">
function SetCookie (name, value, expires)
    {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value) +
        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
        ((path == null) ? "" : ("; path=" + path)) +
        ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");
    }

function schreibeCookie()
 {
 var Benutzername=document.Formular.Benutzer.value;
 var Raumnummer=document.Formular.Raum.value;
 var PCNummer=document.Formular.GeraetNr.value;
 var Ablaufdatum=365*24*60*60*1000;
 var CookieInhalt=Benutzername+" "+Raumnummer+" "+PCNummer;
 var CookieName="Dez12_intern"

//Prüfung, ob ausgefuellt
 if(Benutzername=="")
    {
    alert("Bitte geben Sie Ihren Benutzernamen ein!");
    }
 if(Raumnummer=="")
    {
    alert("Bitte geben Sie Ihre Raum-Nummer ein!");
    }
 if(PCNummer=="")
    {
    alert("Bitte geben Sie Ihre Geräte-Nummer ein!");
    }

// Wenn die relevaneten Felder ausgefüllt sind,
 // dann wird das Cookie geschrieben
 if(Benutzername!="" && Raumnummer!="" && PCNummer!="")
    {
        var cookie=SetCookie(CookieName, CookieInhalt, Ablaufdatum)
        alert(CookieInhalt);
    }
 }
</script>
</head>
<body>
<form action="mailto:ulf.wuestefeld@stua-du.nrw.de?subject=ADV-Störungsmeldung" method="post" enctype="text/plain" name="Formular">
<table align="center">
<tr>
 <td colspan="2"><h1>ADV Störungmeldung</h1></td>
</tr>
<tr>
 <td colspan="2">Art der Störung:
  <select name="Stoerungsart" size="1">
   <option selected value="Monitorproblem">Monitor zeigt nichts an.</option>
   <option value="Druckerproblem">Drucker druckt nicht.</option>
   <option value="Anmeldefehler">Fehler bei der Anmeldung.</option>
   <option value="Internet klappt nicht">Internet klappt nicht.</option>
   <option value="Druckerpatrone leer">Die Druckerpatrone ist leer.</option>
  </select>
 </td>
</tr>
<tr>
 <td></td>
 <td></td>
</tr>
<tr>
 <td>Gerät-Nummer: <input name="GeraetNr" type="text" size="5" maxlength="5"></td>
 <td>Raum-Nummer: <input name="Raum" type="text" size="3" maxlength="3"></td>
</tr>
<tr>
 <td></td>
 <td></td>
</tr>
<tr>
 <td colspan="2">Benutzer: <input name="Benutzer" type="text" size="30" maxlength="60"></td>
</tr>
<tr>
 <td>Störung erstmals aufgetreten am: <input name="1. Stoerung" type="text" size="10" maxlength="10"></td>
 <td></td>
</tr>
<tr>
 <td colspan="2">Bemerkungen:<br>
 <div align="center">
 <textarea name="Bemerkungen" cols="50" rows="3"></textarea>
 </div>
</td>
</tr>
<tr>
 <td></td>
 <td></td>
</tr>
<tr>
 <td>
 <div align="center">
 <input type="Button" value="Senden ..." onClick="schreibeCookie();">
 </div>
 </td>
 <td>
 <div align="center">
 <input type="reset" value="Hat sich erledigt ...">
 </div>
 </td>
</tr>
<tr>
 <td> </td>
 <td> </td>
</tr>
</table>
</form>
</body>
</html>

Vielen Dank für eure Mithilfe!\n\nUlf

  1. Hi nochmal.

    Habe den Quelltext ein wenig bearbeitet.

    Jetzt taucht folgende Fehlermeldung auf:

    Zeile 88: Objekt erwartet.

    Hier nochmal der überarbeitet Quelltext:

    <html>
    <head>
    <title>Service-Formular</title>
    <meta name="author" content="Ulf Wuestefeld">
    <link rel="stylesheet" href="../service.css" type="text/css">
    <script LANGUAGE="JavaScript">
    <!--
     function getCookieVal (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
            endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
    }
    function GetCookie (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen) {
            var j = i + alen;
            if (document.cookie.substring(i, j) == arg)
            return getCookieVal (j);
            i = document.cookie.indexOf(" ", i) + 1;
            if (i == 0) break;
        }
        return null;
        }

    function SetCookie (name, value) {
            var argv = SetCookie.arguments;
            var argc = SetCookie.arguments.length;
            var expires = (argc > 2) ? argv[2] : null;
            var path = (argc > 3) ? argv[3] : null;
            var domain = (argc > 4) ? argv[4] : null;
            var secure = (argc > 5) ? argv[5] : false;
            document.cookie = name + "=" + escape (value) +
            ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
            ((path == null) ? "" : ("; path=" + path)) +
            ((domain == null) ? "" : ("; domain=" + domain)) +
            ((secure == true) ? "; secure" : "");
    }

    function schreibeCookie()
     {
     var Benutzername=document.Formular.Benutzer.value;
     var Raumnummer=document.Formular.Raum.value;
     var PCNummer=document.Formular.GeraetNr.value;
     var Ablaufdatum=365*24*60*60*1000;
     var CookieInhalt=Benutzername+" "+Raumnummer+" "+PCNummer;
     var CookieName="Dez12_intern"

    //Prüfung, ob ausgefuellt
     if(Benutzername=="")
        {
        alert("Bitte geben Sie Ihren Benutzernamen ein!");
        }
     if(Raumnummer=="")
        {
        alert("Bitte geben Sie Ihre Raum-Nummer ein!");
        }
     if(PCNummer=="")
        {
        alert("Bitte geben Sie Ihre Geräte-Nummer ein!");
        }

    // Wenn die relevaneten Felder ausgefüllt sind,
     // dann wird das Cookie geschrieben
     if(Benutzername!="" && Raumnummer!="" && PCNummer!="")
        {
            var cookie=SetCookie(CookieName,CookieInhalt);
            alert(CookieInhalt);
        }
    function leseCookie()
     {
     if(document.cookie)
     {
         getCookie(CookieName);

    }
     if(! document.cookie)
     {
        alert("Kein Cookie vorhanden");
     }
     }
     }
    //-->
    </script>
    </head>
    <body onLoad="leseCookie()">
    <form action="mailto:ulf.wuestefeld@stua-du.nrw.de?subject=ADV-Störungsmeldung" method="post" enctype="text/plain" name="Formular">
    <table align="center">
    <tr>
     <td colspan="2"><h1>ADV Störungmeldung</h1></td>
    </tr>
    <tr>
     <td colspan="2">Art der Störung:
      <select name="Stoerungsart" size="1">
       <option selected value="Monitorproblem">Monitor zeigt nichts an.</option>
       <option value="Druckerproblem">Drucker druckt nicht.</option>
       <option value="Anmeldefehler">Fehler bei der Anmeldung.</option>
       <option value="Internet klappt nicht">Internet klappt nicht.</option>
       <option value="Druckerpatrone leer">Die Druckerpatrone ist leer.</option>
      </select>
     </td>
    </tr>
    <tr>
     <td></td>
     <td></td>
    </tr>
    <tr>
     <td>Gerät-Nummer: <input name="GeraetNr" type="text" size="5" maxlength="5"></td>
     <td>Raum-Nummer: <input name="Raum" type="text" size="3" maxlength="3"></td>
    </tr>
    <tr>
     <td></td>
     <td></td>
    </tr>
    <tr>
     <td colspan="2">Benutzer: <input name="Benutzer" type="text" size="30" maxlength="60"></td>
    </tr>
    <tr>
     <td>Störung erstmals aufgetreten am: <input name="1. Stoerung" type="text" size="10" maxlength="10"></td>
     <td></td>
    </tr>
    <tr>
     <td colspan="2">Bemerkungen:<br>
     <div align="center">
     <textarea name="Bemerkungen" cols="50" rows="3"></textarea>
     </div>
    </td>
    </tr>
    <tr>
     <td></td>
     <td></td>
    </tr>
    <tr>
     <td>
     <div align="center">
     <input type="Button" value="Senden ..." onClick="schreibeCookie();">
     </div>
     </td>
     <td>
     <div align="center">
     <input type="reset" value="Hat sich erledigt ...">
     </div>
     </td>
    </tr>
    <tr>
     <td> </td>
     <td> </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    Danke für eure/Ihre Hilfe

    1. Jaja, ich weiß, langsam nerve ich.

      Aber trotzdem. Hier ist der nochmal überarbeitete Quelltext.

      Diesmal mit dem selben Fehler (Obejkt erwartet), aber diesmla in Zeile 60.

      <html>
      <head>
      <title>Service-Formular</title>
      <meta name="author" content="Ulf Wuestefeld">
      <link rel="stylesheet" href="../service.css" type="text/css">
      <script LANGUAGE="JavaScript">
      <!--
      function schreibeCookie()
       {
       var Benutzername=document.Formular.Benutzer.value;
       var Raumnummer=document.Formular.Raum.value;
       var PCNummer=document.Formular.GeraetNr.value;
       var Ablaufdatum = new Date;
       var CookieInhalt=Benutzername+"_"+Raumnummer+"_"+PCNummer;
       var CookieName="Dez12_intern"

      Ablaufdatum.setMonth(Ablaufdatum.getMonth()+12)

      //Prüfung, ob ausgefuellt
       if(Benutzername=="")
          {
          alert("Bitte geben Sie Ihren Benutzernamen ein!");
          }
       if(Raumnummer=="")
          {
          alert("Bitte geben Sie Ihre Raum-Nummer ein!");
          }
       if(PCNummer=="")
          {
          alert("Bitte geben Sie Ihre Geräte-Nummer ein!");
          }

      // Wenn die relevaneten Felder ausgefüllt sind,
       // dann wird das Cookie geschrieben
       if(Benutzername!="" && Raumnummer!="" && PCNummer!="")
          {
              alert(CookieInhalt);
              document.cookie="_"+CookieInhalt+"_"+";expires="+Ablaufdatum.toGMTString()

      }
      function leseCookie()
       {
       if(document.cookie)
       {
        document.Formular.Benutzer.value=document.cookie.split("_")[1];
        document.Formular.Raum.value=document.cookie.split("_")[2];
        document.Formular.GeraetNr.value=document.cookie.split("_")[3];
       }
       if(! document.cookie)
       {
          alert("Kein Cookie vorhanden");
       }
       }
       }
      //-->
      </script>
      </head>
      <body>
      <script LANGUAGE="JavaScript">
      {
      leseCookie();   <-----------------Hier taucht der Fehler auf
      }
      </script>
      <form action="mailto:ulf.wuestefeld@stua-du.nrw.de?subject=ADV-Störungsmeldung" method="post" enctype="text/plain" name="Formular">
      <table align="center">
      <tr>
       <td colspan="2"><h1>ADV Störungmeldung</h1></td>
      </tr>
      <tr>
       <td colspan="2">Art der Störung:
        <select name="Stoerungsart" size="1">
         <option selected value="Monitorproblem">Monitor zeigt nichts an.</option>
         <option value="Druckerproblem">Drucker druckt nicht.</option>
         <option value="Anmeldefehler">Fehler bei der Anmeldung.</option>
         <option value="Internet klappt nicht">Internet klappt nicht.</option>
         <option value="Druckerpatrone leer">Die Druckerpatrone ist leer.</option>
        </select>
       </td>
      </tr>
      <tr>
       <td></td>
       <td></td>
      </tr>
      <tr>
       <td>Gerät-Nummer: <input name="GeraetNr" type="text" size="5" maxlength="5"></td>
       <td>Raum-Nummer: <input name="Raum" type="text" size="3" maxlength="3"></td>
      </tr>
      <tr>
       <td></td>
       <td></td>
      </tr>
      <tr>
       <td colspan="2">Benutzer: <input name="Benutzer" type="text" size="30" maxlength="60"></td>
      </tr>
      <tr>
       <td>Störung erstmals aufgetreten am: <input name="1. Stoerung" type="text" size="10" maxlength="10"></td>
       <td></td>
      </tr>
      <tr>
       <td colspan="2">Bemerkungen:<br>
       <div align="center">
       <textarea name="Bemerkungen" cols="50" rows="3"></textarea>
       </div>
      </td>
      </tr>
      <tr>
       <td></td>
       <td></td>
      </tr>
      <tr>
       <td>
       <div align="center">
       <input type="Button" value="Senden ..." onClick="schreibeCookie();">
       </div>
       </td>
       <td>
       <div align="center">
       <input type="reset" value="Hat sich erledigt ...">
       </div>
       </td>
      </tr>
      <tr>
       <td> </td>
       <td> </td>
      </tr>
      </table>
      </form>
      </body>
      </html>

      Nochmals Danke für eure Hilfe

      1. Hat sich erledigt, danke!

        1. Hat sich erledigt, danke!

          War auf wuesti.de, konnte aber nix sehen, außer die Aufforderung dass man sich zurücklehnen soll. Braucht man da Flash? Wenn ja solltest Du mal über eine flashlose Version nachdenken.

          Roland

          1. hi,

            War auf wuesti.de, konnte aber nix sehen, außer die Aufforderung dass man sich zurücklehnen soll. Braucht man da Flash? Wenn ja solltest Du mal über eine flashlose Version nachdenken.

            flash wird anscheinend lediglich eingesetzt, um die für die navigation benutzten buttons zu animieren. mal wieder ein richtig schönes beispiel, wie man es nicht machen sollte ...

            gruss,
            wahsaga

      2. Hallo Ulf,

        hallo Ulf, ich habe die unwesentlichen Sachen rausgekürzt.

        <head>
        function leseCookie() {
        document.Formular.Benutzer.value=...
        }
        </head>

        Bis hierher ist ja alles noch ok.

        <body>
        <script LANGUAGE="JavaScript">
        {
        leseCookie(); 
        }

        ^-- was machen die hier?

        Jetzt untersuche bitte in welcher Reihenfolge der Browser das HTML-Dokument und das darin eingebettete javascript parst und verarbeitet. Fällt dir etwas auf?

        <input name="Benutzer"
        </body>

        Richtig. Das Formularfeld auf das du dich beziehst existiert noch garnicht.

        HTH

        Maxx