|
|
|
◆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 name、mail、urlは、使われる方独自の名前に変えてください。 さらに、/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にヘッダデザインの中身をすべてコピーしてメールしてください。 できるだけ対応したいと思います。 |
|