Cookie schreiben
Ulf
- javascript
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
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
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
Hat sich erledigt, danke!
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
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
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