こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

パスワードを二つ用いて隠しページをひらくには?

お世話になります。
http://www.red.oit-net.jp/tatsuya/java/prompt.htm
このサイトをみてパスワード付きホームページの作成の
仕方はおおむね理解したのですが、
私のサイトの場合パスワードを2個用いて
隠されたホームページを表示されるようにしたいと思っています。

<script language="JavaScript"><!--
function myButton(){
myPassWord = document.myFormText.myFormTextPass.value;
if ( myPassWord == "pass1" )location.href = "secret.htm";
else alert( "パスワードが違います!" );
}
// --></script>

<form name="myFormText">
パスワードを入れてください
<input type="password" size="30" name="myFormTextPass">
<input type="button" value="OK" onclick="myButton()">
</form>
パスワードを入れてください

このような表記だと1つのパスワードしか入力できず
困っているのですが2つのパスワードを入力させるようにするにはどのような記述をすればよろしいでしょうか。
よろしくお願いいたします。

投稿日時 - 2005-01-23 02:07:37

QNo.1181339

暇なときに回答ください

質問者が選んだベストアンサー

パスワードではなく、問題の答えあわせですか。
それならこのような例はどうでしょう?

<html>
<head>
<title>サンプルコード</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script LANGUAGE="JavaScript">
<!--
function check(){
var ans1 = "ここに答え1";
var ans2 = "ここに答え2";
var ans3 = "使わないかもしれませんが。ここに答え3以降同じ方法で増やせます";
var url = "http://goo.ne.jp/";// 全問正解時のリンク先URL
var msg = "";

// ここで判定
if (document.mondai.tx1.value != ans1){msg += "答え1は間違いです\n"}
if (document.mondai.tx2.value != ans2){msg += "答え2は間違いです\n"}
if (document.mondai.tx3.value != ans3){msg += "答え3は間違いです\n"}

// ここで全問正解時はリンク、そうでないときはその旨のメッセージを表示
if (msg == ""){alert("全問正解です。次の問題に飛びます");window.location.href = url;}else{alert(msg);}
}
//-->
</script>
</head>
<body>
<form NAME="mondai" ACTION="#">
<input TYPE="text" NAME="tx1">
<input TYPE="text" NAME="tx2">
<input TYPE="text" NAME="tx3"><!--念のため3つ目-->
<input TYPE="button" onclick="check()" VALUE="答え合わせ">
</form>
</body>
</html>

増やすときは
var ans3 = "";     JavaScriptコード
if (document.mondai.tx3.value != ans3){msg += "答え3は間違いです\n"}     JavaScriptコード
<input TYPE="text" NAME="tx3">     HTML
この3箇所を追加してください

投稿日時 - 2005-01-23 23:31:37

お礼

親切にありがとうございます。
本当に助かりました。
まさに私の理想系のコードです。

ありがたく使わせていただきます。m(__)m

投稿日時 - 2005-01-24 02:33:12

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

kjn

あくまで簡易的なものですが、↓のjavascriptではソース自体にはパスワードを書き込まず、パスワード自体が引数となって、次に表示させたいページのファイル名が「パスワード+html」という記述になっているので、例えばパスワードがoneとtwoだったら、パスが通ったときに行くページとして「one.html」と「two.html」を用意すればいいのです。この方法だと、いくつでもパスワードを設定でき、ファイル名さえバレなければ簡単にはアクセスできません。パスが通ったときに行くページを「zero.html」というひとつのページに統一したければ「one.html」と「two.html」のhead部分にこれでリダイレクトの<meta http-equiv="refresh" content="0;url=zero.html">を書けばいいでしょう。

ただしあくまでも本格的な認証にはむいていません。1の方がおっしゃる通り、htaccessを使ってディレクトリごと保護するのが一番良いでしょう。

<script language="JavaScript">
<!--
function passBlock() {
var password = prompt("パスワードを入れてください","");
if (password != "") {
location.href=password+".html";}
else {
alert("パスワードが違います")
location.href="http://www.yahoo.co.jp";
}
}
//-->
</SCRIPT>

<INPUT type="button" name="PassBlock" value="key" onClick="passBlock()">

投稿日時 - 2005-01-23 02:34:21

補足

ありがとうございます。
ですがセキュリティー自体にはそれほどこだわっていないんですよね。

私は高校生用の数学の問題のホームページを作っていて
答えの欄に 入力させ それがあってれば次のページへ
間違っていればメッセージが表示されるという風に
したいんです。


例えば、1つ目の答えを 50 として
2つ目の答えを 100 とします。

両方が正解ならば 次のページが開き
片方が不正解なら メッセージがでて1問目が間違ってる
又は2問目がまちがってる。等表示されるようにしたいんです。

先に挙げた例では一つの答えしか入力できず困っています。
何分javascriptについてはまったくの初心者でさっぱりわからないです。教えて頂けないでしょうか。宜しくお願い致します。

投稿日時 - 2005-01-23 14:48:37

ANo.1

残念ですが、この方法は危険です。
なぜなら少しでもJavaScriptを習得したひとなら、だれでもすぐにパスワードの制限のかかったページにアクセスできてしまいます。
パスワードを掛けるには、
.htpasswd
.htaccess
というファイルをアップロードすることにより行いましょう
参考ページとして解説の乗っているページを載せておきます。

もしその制限されたページに重要な内容が書かれている場合、あなたの行おうとしているJavaScriptでのパスワード処理は絶対に行わないように!

参考URL:http://www.futomi.com/lecture/htaccess/htpasswd.html

投稿日時 - 2005-01-23 02:14:34

お礼

ありがとうございます。
ご忠告感謝いたします。m(. .)m

投稿日時 - 2005-01-23 14:48:04

あなたにオススメの質問