名前を訊くスクリプト

わたしのホームページの作り方のサイトのHPの作り方質問BBSで、「ページに入る時に、名前を入力するスクリプトが開いて、次からは『名前を変更する』というボタンを押さない限り、そのスクリプトが開かないようにする、というスクリプトを…」という質問がありました。始めはよく意味が分からなかったのですが、JavaScript のクッキーを使ってできるかな?、と思い、遊び半分で作ってみましたら何とかそれらしきものになりました。

ソース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>名前を訊くスクリブト</title>
<script type="text/javascript"><!--
cookiename = "jusw221";
function setCookie(){
expires = "Fri, 31 Dec 2010 23:59:59 GMT";
var cname;
cname = escape(form1.nam.value);
if(cname == ""){document.write('お名前をお書き込み下さい');}
else{
document.cookie = cookiename + "=" +  cname + "; expires=" + expires;
return true;}
}
function setCookie2(){
expires = "Fri, 31 Dec 2000 23:59:59 GMT";
var cname;
cname = "oo";
document.cookie = cookiename + "=" +  cname + "; expires=" + expires;}
//--></script>
</head>

<body topmargin="150">
<center>
<script type="text/javascript"><!--
str = document.cookie;
no = str.indexOf(cookiename);
str2 = str.substring(no+cookiename.length+1);
no = str2.indexOf(";");
if(no==-1){str3 = str2.substring(0);}
else{str3 = str2.substring(0,no);}
str3 = unescape(str3);
if(str.match(/jusw221/)||(str3!=""&&no==-1)){
document.write(str3 + 'さん、いらっしゃい!<br><br>');
document.write('お名前を変更したい時には、クリックしたください ');
document.write('<form><input type="button" name="change" value="名前の変更" onClick="setCookie2();location.reload();"></form>');}
else {document.write('<form name="form1">');
document.write('<p>お名前をお書き込み下さい');
document.write(' <input size="20" type="text" name="nam"></p>');
document.write('<p><input type="button" value="登 録" onClick="setCookie();location.reload();"></p></form>');}
//--></script>
</center>
</body>
</html>

興味をお持ちの方はお試しください。下のコピーボタンをクリックしますと、上のソースが一括してクリップボードにコピーされます。

スクリプトを修正致しました。

もし9月18日の午後10:30以前にこのスクリプトを試された方がおられましたら、お詫び申し上げます。
ちょっと不備があり、上手く機能しない場合がありました。名前の登録がない場合を判断するスクリプトに足りないところがあり、いきなり名前変更の画面が出、いくら変更ボタンをクリックしても、名前の入力画面が出ない状態になられた方もおられたかと想像致します。先ほどそれを補っておきましたので、懲りずによろしくお願い致します。m(_ _)m

えっ、誰も試した人なんていない!って、それならそれでいいのですが…。(^^;)

PageTop