WSH って?

 Windows にインストールされている WSH(Windows Script Host)というソフトによって、Windows 上で色々な実行ができるときょうになって知りました。へぇ〜そうなんだという心境。(^^;)

 興味のある方は、試しに下記の Script をコピーしてメモ帳に貼り、del.js と名前をつけてデスクトップに保存してみてください。そしてブルクリックしてみてください。
(PCがおかしくなるようなことは絶対にありませんので、ご安心を。(^^;))

var fs = WScript.CreateObject("Scripting.FileSystemObject");
f = fs.GetFile("del.js");
f.Delete(true);

 どうなりました。m(^^)m

JavaScriptによるアクセス制限

 JavaScriptによるアクセス制限その1です。
秘密の部屋のファイル名やディレクトリ名をパスワードにして、合っていればそこに飛ばす方法では、バスワードがばれる可能性は非常に低いでしょう。しかしこの方法でより完璧なアクセス制限をするのには、以前ご紹介した『JavaScript によるアクセス制限』のように複雑な仕組みを作ることとなります。やはり一番簡単な方法は、パスワードを作りそれが合っていれば秘密の部屋に行けるものなのですが、何しろ JavaScript はスクリプト自体を隠すことができないので困ります。そこで考えられるのがパスワードの暗号化です。まぁ、スクリプトが見え見えなので、 JavaScript に詳しい人が見ればいずれ分かってしまうのですが、一般の多くの人には効果があるということでご紹介いたします。これは先日ご紹介しました、文章・語句の Entity 変換のスクリプトを利用しています。
※ 下の例の場合、パスワードは abc です。
Passwordをお入れ下さい 
 ※ パスワードが合っていれば、秘密のページへのリンクが出ます。

 ただこれだけでは秘密のページのアドレスも分かってしまうので、秘密のページにも直接呼び出された時に他ページに飛ばされてしまうスクリプトを書き込む必要があります。

ソース
<!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">
<title>password</title>
<script type="text/javascript">
<!--
function check(){
p = form1.pwd.value;
pass = "";
n = 0;
for(n=0; n <= p.length - 1; n++){
d = p.charCodeAt(n);
conv = '9'+ d + '8';
pass += conv;}
if(form1.pwd.value == ""){
alert("パスワードが入力されていません");
}
else if(pass != "997899889998"){
alert("パスワードが違います");
}
else{
document.writeln("<html><head><title>クリックしてください</title></head>");
document.writeln("<body topmargin=200>");
document.writeln("<center><b>あなたは認証されました<br>");
document.writeln("Enter をクリックしてお入り下さい。</b><br><br>");
// a href="" の "" の中に、秘密のページのアドレスを入れます。
document.writeln("<a href='http://www.**.ne/jp/**/himitu.html'><b>Enter</b></a>");
document.write("</center></body></html>");
document.close();
}
}
//-->
</script>
</head>

<body>
<form name="form1">
Passwordをお入れ下さい <input type="password" name="pwd" size=12>
<input type="button" value="password check" onclick="check()">
<input type="reset" value="reset">
</form>
</body>
</html>

秘密のページに書き込むスクリプト
<script type="text/javascript">
<!--
// (referrer.indexOf の次に最初のページのアドレスを入れます)
if(document.referrer.indexOf("http://www.**.ne/jp/**/index.html")== -1)
{location.replace("http://www.yahoo.co.jp/");}
//-->
</script>
<noscript>
<meta http-equiv="Refresh" content="0;URL=http://www.yahoo.co.jp/">
</noscript>

ちょっと使ってみようとお思いの方はご利用下さい。下のコピーボタンをクリックしますと、上のソースが一括してクリップボードにコピーされます。

迷惑メール対策

 昨今のウィルスメール・迷惑メールの多さには呆れるばかりです。ホームページ上のメールアドレスを Entity 変換してソースに記述したら、少しでもメールアドレスがメールアドレス収集ロボットに拾われにくなるかもしれません。文章を Entity 変換するための JavaScript をご紹介致します。
※ 上のテキストエリアに変換したい語句・文章を書き込んで、[Entity変換]ボタンをクリックします。





ソース
<!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">
<title>Entity</title>
</head>

<body>
<script type="text/javascript">
<!--
function ent(){
normal = document.form1.normal.value;
entity = "";
n = 0;
for(n=0; n <= normal.length - 1; n++){
cood = normal.charCodeAt(n);
conv = '&#'+ cood + ';';
entity += conv;}
document.form1.entity.value = entity;
}
//-->
</script>

<form name="form1">
<textarea cols=56 rows=7 name="normal">mailto:</textarea><br><br>
<input type="button" value="Entity 変換" onclick="ent()">
<input type="reset" value="reset"><br><br>
<textarea cols=56 rows=7 name="entity"></textarea>
</form>
</body>
</html>

気休めかもしれないけれどやってみようとお思いの方はご利用下さい。下のコピーボタンをクリックしますと、上のソースが一括してクリップボードにコピーされます。

レンタル掲示板始めました

 ネットで事業をするには その3 今回の記事は、99%宣伝です (^^;)

  ♥ Ryos.info レンタルCGI ← ここをクリックしてね♪

にこにこ
にこにこ
普通
普通
初めまして
初めまして
ぐすん
ぐすん
は〜い!
は〜い!
おいおい
おいおい
怒ったぞ!
怒ったぞ!
お眠です〜
お眠です〜
びっくりー!
びっくりー!
やれやれ
やれやれ
いやあ
いやあ
わからん?
わからん?
あわあわ
あわあわ
こら〜!
こら〜!
やったーっ
やったーっ

 さて大手町の総務省関東総合通信局情報通信部電気通信事業課に届出電気通信事業(旧一般第二種事業に該当)の届出も済ませ。レンタル掲示板に使うCGI製作サイトへの事業者登録も済ませましたので、よいよ掲示板のレンタル開始です。

 便利で楽しいレンタル掲示板です。利用者のパソコンの中の画像を送信して表示できる画像アップロード式(年間使用料1200円消費税込)のものと、タグを書き込むことで画像を表示できるタイプ(年間使用料600円消費税込)の2種類をレンタルしています。

 どちらも親記事に対してレスがつけられます。ご利用される方(管理人)が設定変更画面から、タイトルやデザイン、パスワード、アイコンの有る無しなど設定を色々変えることができます。お試し用掲示板がありますので、お試し下さい。ご質問はご遠慮なく質問掲示板でお尋ね下さい。

 設置してみようと思われましたら、お申し込み用送信フォームよりお申込み下さい。お申し込みされたその時点で設置され利用できます。お試し期間が2週間ございますので、その間に使用して頂き、お気に召しましたら使用料のお振り込みをお願い致します。2週間を過ぎてもお振り込みがございませんと、キャンセルされたこととなり掲示板は削除されます。詳しくは、ご利用方法・ご利用規約をご覧下さい。

名前を訊くスクリプト

わたしのホームページの作り方のサイトの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>

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

「名前を訊くスクリプト」続きを読む

タグの自動挿入

 この Blog の記事書き込み欄の上には、[URL] [B] [i] [U] の4つのボタンがついていまして、これは JavaScript で動作するタグ自動挿入のボタンです。DION の LOVELOG の場合、JavaScript のソースが別ファイルなっていますが、

http://blog.dion.ne.jp/js/misc.js

にアクセスすればダウンロードして見ることができます。どれもテキストエリア内の選択語句を拾い、その語句の前に開始タグを後ろに終了タグを挿入する仕組みになっています。

 ではテキストエリア内の任意の場所に、選択した語句の前後でなく単独でタグを挿入できないでしょうか。これはちょっと簡単に思えますが、意外と難しいようです。選択語句は、

document.selection.createRange().text

で得られますが、テキストエリアにカーソルを置くことで得られるテキストの書き込み位置は、テキストエリア左端からのX座標や、テキストエリア上端からのY座標を調べないとできないようです。それでネットの検索で色々調べ、それらしきスクリプトから必要と思われるものを抽出して繋ぎ合わせてみました。ですので、ちょっと余分なものも含まれているかも知れません。ちょっとここに書くと長くなりますので、これらのスクリプトを使って作りました「タグ学習ボード」なるものを見て下さい。

タグ学習ボード

このソースファイルのソースをご覧下さい。ご自分に便利なように色々改造したら、使い道があるかも知れませんね。ご自由にお使い下さい。ただ、まだ時々書き込み位置が正しく認識されずに、あらぬ場所にタグが挿入されることがたまにあります。(^^;)

ネットで事業をするには 2

 さて先月代田区大手町にある総務省関東総合通信局の情報通信部電気通信事業課にレンタル掲示板をするための届け出をして来たのですが、その時の職員の方のお話では、届け出を受理したお知らせは郵送されるものの、事業は本日より行ってよいですとのことでした。また届け出をしたことをネット上に明記したり、よくネット上の通販会社が載せている「通信販売法に基づく表記」なるものの表記も、必ずしなければいけないというものではありませんとのことでした。なんだそうなんだ。(^^;)

 さて今回レンタル掲示板を始めようと思ったきっかけは、前回書きましたようにサーバのスペックが上がったことも大きいのですが、CGI-designというCGIスクリプトの公開サイトで、複数掲示板なるスクリプトを見つけたことにもよります。これはひとつのスクリプトでいくつもの掲示板を動かすというスクリプトで、ある決められたディレクトリ内に掲示板用のディレクトリを作り、そのディレクトリ名を引数としてアクセスすると新たに掲示板が作られるというものなのです。ではそのディレクトリを自動的に作れないか。で、kent-web さんで配布されている postmail というメール送信CGI のスクリプトの中に、お客さまが申し込みの送信をする過程でサーバ内の決められたディレクトリ内に掲示板用のディレクトリを作れないかと考えました。(^^;)

 下記のスクリプトでなんとかディレクトリ生成はできたものの、パーミッション 755 のところを 777 にしてもパーミッションが 755 になってしまった。

mkdir ("./bbs/$n", 0755) || die "ディレクトリ生成失敗 : $!";

何かいい方法はないものかな…、と悩んでいましたが、

chmod(0777,"./bbs/$n") or print "$!";

と書き足すことで解決しました。何となくスマートではないのですが…。(^^;)

 また最初はメール送信フォームにユーザID欄を設け、そこに書き込まれた ID が掲示板のためのディレクトリ名になるように設定してみました。

<input type="text" name="id" size="35" style="ime-mode:disabled;">

とすれば、間違って直接入力以外の入力で送信されることもない。しかしよくよく考えてみると、お客さまに ID を決めて頂くと同じ ID が出て来る可能性がある訳です。それで勝手に1から順に2、3とディレクトリ名がつけられるようにしようと思いました。が、さてどうしたらそうなるか…。一日ほど考えたでしょうか、思いついた方法はパーミッション 666 にしたナンバーを参照するのと同時に書き込みできるファイルを作り、参照した数字プラス1を書き込むように設定してみました。始めこのファイルに0を入れておくとメールが送信される度に1、2、3という名のディレクトリが生成されていく仕組みです。お〜、スクリプトって考えればなんでもできるのね。(^^;)

 さて自分で改造したとはいえ、元は人さまの作られたスクリプトです。これをただで商売に使っては申し訳ない訳で、kent-web さんのスクリプト商用利用の事業者登録は昨年の7月に済ませてありましたので、今回は CGI-design さんのスクリプト商用利用の事業者登録を致しました。どちらも12000円をお支払いすると、永久的にスクリプトの商用利用ができるというシステムになっています。

Ryos.Info レンタルCGI

2003年7月、Kent Web CGI 商用利用の事業者登録。    
2004年8月、CGI-design CGI 商用利用の事業者登録。  

つづく

ワンクリックでコピー その2

 前回は JavaScript を使って、テキストエリア内の文字をワンクリックでクリップボードにコピーましたが、今回は同じく JavaScript を使ってワンクリックで JavaScript 内に書き込んであるテキストをコピーするスクリプトです。

 これですといちいちテキストエリアを作らないですみます。ページで紹介した文章・語句・タグ・ソースなど、この JavaScript の中に書き込んでおけば、ワンクリックでクリップボードにコピーされます。改行したテキストをコピーしたい時は、テキスト内の改行したいところに \n と入れればOKです。

サンプル さてさて、クリックすると何がコピーされますやら…。(^^;)

ソース
- 省略 -
<script type="text/javascript">
<!--
function clip(){
clipboardData.setData('text',"コピーしたい\nテキスト");
alert('クリップボードにコピーしました');
}
//-->
</script>
</head>

<body>
<div align="center"><form>
<input type="button" value="コピー" onclick="clip();">
</form>
</div>
- 省略 -