ブラウザ落として開いても残らない。



0   名前: 美優 : 2006/02/08 21:51
テキスト内の内容をクッキーに保存してアラートに出す単純なものなんですけど、
ちゃんとクッキーの読み出し、書き出しなされていますが、なぜかブラウザを落として開いても再度開いてもクッキーが残っていません。
もし原因が解明できる方がいらっしゃいましたら返答をお願いいたします。
単純なものかも知れませんが私には気付く事ができません・・・

1   名前: 美優 : 2006/02/08 21:51
以下がソースです。
<html>
<haed>
<script language="Javascript">
function setcookie(myN){
var tmp = myN + '=' + escape(myN);
tmp += ';expires = Thu, 1-2030 00:00:00';
tmp = document.myform.myN.value;
document.cookie = tmp;
}
function getcookie(myN){
tmp = document.cookie + ';';
var p1 = tmp.indexOf('a1');
if(p1 != -1){
var p2 = tmp.indexOf('=',p1)+1;
var p3 = tmp.indexOf(';',p2);
document.myform.myN.value = eval(tmp.substring(p2,p3));
}
else
""
}
function a(){
alert("あなたは" + document.cookie + "です");
}

</script>
</head>
<body onload="a()">
<form name="myform">
<input type="text" name="myN"><input type="button" onclick="setcookie(myN)">
</form>
</body>
</html>

2   名前: 神崎 : 2006/02/08 21:51
> function setcookie(myN){
> var tmp = myN + '=' + escape(myN);
> tmp += ';expires = Thu, 1-2030 00:00:00';
> tmp = document.myform.myN.value; <<<<<<<<<<ここ
> document.cookie = tmp;
> }
expiresが消えています。

3   名前: Pid : 2006/02/08 21:51
ご質問と直接の関係はありませんが,

・script 要素には type 属性が必須。特に理由が無ければ,もう language 属性など書かないで下さい。
・escape/unescape 関数は ECMA 262-3 で既に廃止されました。encodeURI/decodeURI 関数を使って下さい。

4   名前: 美優 : 2006/02/08 21:51
神崎さん>>
こういうことでしょうか?
function setcookie(myN){
var tmp = myN + '=' + escape(myN);
tmp += ';expires = Thu, 1-Jan-2030 00:00:00';
tmp += ';expires = document.myform.myN.value';<<ココ
document.cookie = tmp;
}
一応こうやると、テキスト内に書かれた内容とは異なり、
クッキー内には[object]=%5Bobject%5Dと出ます。
ブラウザを再度立ち上げると残ってはいますが、言葉として表示されていません・・・

Pidさん>>
すいません、私初心者なので、わからないです・・・

5   名前: 匿名希望 : 2006/02/08 21:51
>>4
あやまる必要はどこにも無い。
「初心者」という言葉は何の言い訳にもならない。
わからなければ学びたまえよ。

6   名前:  : 2006/02/08 21:51
> クッキー内には[object]=%5Bobject%5Dと出ます。
> document.myform.myN.value = eval(tmp.substring(p2,p3));

eval()ではなくunescape()。ただし、>>3にあるように、
escape()をencodeURI()に、unescape()をdecodeURI()に置き換えて下さい。

#未だにescape()/unescape()を使う意味は、
#よほど古いブラウザ相手でない限りないはずです。

> すいません、私初心者なので、わからないです・・・

気持ちは分かるんですが、でも作る側がそんな寂しいことを言わないで下さい。
あなたが初心者だろうと何だろうと、見る方としては「あなたが作ったもの」を信じるしかないんですから
だったら、より良いもの/間違いの少ないものを提供しましょうよ。

#記事一部修正

7   名前: S : 2006/02/08 21:51
 サイト製作者として知っているとよいことは、たとえば下記の通り。

http://members.jcom.home.ne.jp/pctips/www/PreCondition.html

 また、学習上の注意点は下記のとおり。

http://members.jcom.home.ne.jp/pctips/www/Advice.html

一覧へ戻る