redFree Design BBSの間red


◆Free Design BBSでCookieを使用する方法


 Softwind Productsが提供するFree Design BBSは、デザイン・レイアウトをHTMLで書けるため非常に自由度が高いレンタル掲示板です。 しかし、Cookieを利用した名前やメールアドレスの保存の機能がサポートされていないので、若干使いにくい面もあります。
 そこで、JavaScriptを利用して、名前やメールアドレスをCookieに保存できるようにしましたので、その処理の仕方を紹介します。 といっても、http://www.nob21.com/javanavi/sample/cookie.htmlのスクリプトを拝借し、Free Design BBSでの設置に適合するようにいくつかの変更を加えただけです。 便利なスクリプトを作ってくれたNobさんに感謝です。

1三角以下のスクリプトをコピーして、ヘッダデザインの先頭にペーストします。
 namemailurlは、使われる方独自の名前に変えてください。
 さらに、/bbsnameの部分は、http://bbslite.softwind.ne.jp/bbsname/の下線部分に書き換えてください。

 少し解説をすると、1行目と最終行はオリジナルのスクリプトにはなかった部分です。 元々のFORM文はヘッダデザインの外側に位置しているために、書き換えることができませんが、このスクリプトを使うにはFORM文にnameタグを付け加える必要があります。 そこで、オリジナルのFORM文をクローズしてしまい、nameタグを付け加えたFORM文を書き加えたわけです。

</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!----Cookie使用

var CName_name = "name";
var CMail_name = "mail";
var CUrl_name = "url";

function setCookie(p_name,p_value,p_expires,p_path,p_domain,p_secure){
var v_text = "";
v_text = p_name + "=" + escape(p_value);
if (p_expires){v_text = v_text + "; expires=" + p_expires.toGMTString();}
if (p_path){v_text = v_text + "; path=" + p_path;}
if (p_domain){v_text = v_text + "; domain=" + p_domain;}
if (p_secure){v_text = v_text + ";" + p_secure;}
document.cookie = v_text;
}

function getCookie(p_name) {
if (document.cookie){
index = document.cookie.indexOf(p_name, 0);
if (index != -1) {
val_start = (document.cookie.indexOf("=", index) + 1);
val_end = document.cookie.indexOf(";", index);
if (val_end == -1){
val_end = document.cookie.length;
}
return(unescape(document.cookie.substring(val_start, val_end)));
}
}
return(null);
}

function set_name(set_name_value){
var p_expires = new Date();
p_value = set_name_value;
if ( p_value == "" ) p_value = "null";
p_expires.setTime(p_expires.getTime() + (6 * 30 * 24 * 60 * 60 * 1000));
p_path = '/bbsname';
p_domain = null;
p_secure = false;
setCookie(CName_name,p_value,p_expires,p_path,p_domain,p_secure);
}

function set_mail(set_mail_value){
var p_expires = new Date();
p_value = set_mail_value;
if ( p_value == "" ) p_value = "null";
p_expires.setTime(p_expires.getTime() + (6 * 30 * 24 * 60 * 60 * 1000));
p_path = '/bbsname';
p_domain = null;
p_secure = false;
setCookie(CMail_name,p_value,p_expires,p_path,p_domain,p_secure);
}

function set_url(set_url_value){
var p_expires = new Date();
p_value = set_url_value;
if ( p_value == "" ) p_value = "null";
p_expires.setTime(p_expires.getTime() + (6 * 30 * 24 * 60 * 60 * 1000));
p_path = '/bbsname';
p_domain = null;
p_secure = false;
setCookie(CUrl_name,p_value,p_expires,p_path,p_domain,p_secure);
}

function JSset(){
set_name(document.jscookie.name.value);
set_mail(document.jscookie.email.value);
set_url(document.jscookie.url.value);
document.jscookie.submit();
}
//END --->
</SCRIPT>

<FORM METHOD="post" ACTION="bbsupd.cgi" name="jscookie" >

2三角 次に、ヘッダデザインの中から下のような文を探し出して、赤字のように書き換えます。

<INPUT TYPE="submit" VALUE="書き込む">
 ↓
<INPUT TYPE="button" VALUE="書き込む" onClick="JSset()">

3三角 最後に、下のスクリプトをコピーして、ヘッダデザインの一番下にペーストします。

<SCRIPT LANGUAGE="JavaScript">
<!---フォームへ書き込み
var getname = getCookie(CName_name);
if (getname == null || getname == "null") getname = "";
var getmail = getCookie(CMail_name);
if (getmail == null || getmail == "null") getmail = "";
var geturl = getCookie(CUrl_name);
if (geturl == null || geturl == "null") geturl = "http://";
document.jscookie.name.value = getname;
document.jscookie.email.value = getmail;
document.jscookie.url.value = geturl;
//END ---> </SCRIPT>

 以上で終わりです。登録ボタンを押し、書き込みを行ない、Cookieに各種データが保存されているかどうか確認してください。 うまくいかなかった場合は、もう一度書き換えた部分をチェックしてみてください。
 それでもダメな場合は、dancing_masakun@mail.goo.ne.jpにヘッダデザインの中身をすべてコピーしてメールしてください。 できるだけ対応したいと思います。


入口
自己紹介の間
日記の間
Aptivaの間
IPSUMの間
懸賞の間
リンクの間