HTMLパスワード認証のソースがうまく動かない理由とは?

このQ&Aのポイント
  • 今回は、HTMLパスワード認証のソースが正しく動かない問題について解説します。
  • HTMLパスワード認証のソースがうまく動かない理由として、ファイルパスの指定が誤っている可能性が考えられます。
  • また、JavaScriptのコードの一部に不備がある場合も、動作が正常に行われないことがあります。
回答を見る
  • ベストアンサー

HTML パスワード認証について

HTML パスワード認証について 現在、HPを作成しているのですが、パスワード認証のソースがうまく動きません。 素人なもので色々と調べながらやっているのですが、なぜ動かないかがわかりません。 どなたか教えていただけないでしょうか? ソースは下記通りです。 <head> <SCRIPT LANGUAGE="JavaScript"> <!-- function PassLink(){ key=document.pass.word.value; location.href="C:\xxxxxxxxxx\ooooooooo\iiiiiiiii\"+key+".html"; } //--> </SCRIPT> </head> とHTML側の文章は <body> <FORM name="pass"> <INPUT type="text" name="word" size="18"> <INPUT type="button" value="認証" onClick="PassLink()"> </FORM> </body> です。 宜しくお願いします。

  • HTML
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • g_liar
  • ベストアンサー率52% (382/728)
回答No.2

> PC内の別フォルダをにあるものを見ることはできないのでしょうか? 自分が自分のPCでだけ閲覧する分には可能ですが…。 HPと言うからにはサーバにアップロードして、第三者にサーバ上のファイルを閲覧させるものですよね。 C:\…だと自分のPC内のフォルダ/ファイルを指してしまいます。 "\xxxxxxxxxx\ooooooooo\iiiiiiiii\"+key+".htmlとしたいのでしたら サーバ上にxxxxxxxxxxフォルダ、oooooooooフォルダ、iiiiiiiiiフォルダを作り、 iiiiiiiiiフォルダ内にkey+".html"をアップロードして以下のように記述します。 location.href="http://サーバのアドレス/xxxxxxxxxx/ooooooooo/iiiiiiiii/"+key+".html"; ジャンプ元のHTMLファイルがiiiiiiiiiフォルダにあるのなら location.href=key+".html"; の相対指定も可能です。

B-Shake
質問者

お礼

大変失礼しました。 HPといっていますが、実際にはサーバーにあるhtmlファイルを開きたいのです。 上記の通りやっているのですが、ボタンを押しても”ページエラー”とwindowの左下の灰色の部分に表示されるだけで動いているような気配がありません。 フォルダ名に日本語やスペースが入っているのがいけないのでしょうか?

B-Shake
質問者

補足

色々とありがとうございました。 サーバーの部分”\xxxxxxxxxx\ooooooooo\iiiiiiiii\”を一発変数として置き(Ex. key2みたいに)、 location.href側で変数を入れたらできました。 お騒がせしました。。。

その他の回答 (1)

  • g_liar
  • ベストアンサー率52% (382/728)
回答No.1

いけないのは・・・ location.href="C:\xxxxxxxxxx\ooooooooo\iiiiiiiii\"+key+".html"; の部分。 C:\…でなく、http://…で始まるサーバのアドレスに変えてください。

B-Shake
質問者

お礼

早速の回答ありがとうございます。 PC内の別フォルダをにあるものを見ることはできないのでしょうか? 相対パスではきちんと動作することは確認できているのですが、絶対パスにすると動かないんです。。。。

関連するQ&A

  • ホームページの「パスワード」機能が上手く作動しなくて困っています。

    自分のホームページに「パスワード」で 特定の人だけが閲覧できるページを作りたいのですが インターネットで見つけたスクリプト(下記)を HTMLに書き込んだのですが、上手くリンク先のページに 飛びません。何が悪いのでしょうか? ****************以下書き込んだ内容です。 <head></head>の間に <script language="JavaScript" type="text/javascript"> function nextPage(){ pwd=document.form1.pass.value; location.href=pwd+".html"; } </script> そのあと<body></body>の間に <form name="form1"> <input type="textbox" name="pass"> <input type="button" value="パスワード" onClick="nextPage();"> </form> ****************です。 パスワードは、飛ばしたい先の名前が「test.html」 ですので、聞いてきたパスワード欄に test と打つのですが 「表示できません」のメッセージが出ます。 環境は vista でホームページビルダーのvar.5です。 よろしくお願いいたします。

  • パスワード認証ページ作りたい(basic認証でない)

    フリーのものを使ってパスワード認証ページ(basic認証でない)を作ろうとしています。しかし、うまく動いてくれません…何がいけないのでしょうか?どうかご教授下さい。ちなみにここのサンプルです。 http://www.jetman.jp/passwd.php <?php $user_pass = "test"; $ok = "ok.htm"; $error = "error.htm"; $script = "login.php"; $doc_title = "テスト"; if(!isset($ver)) { $ver = '1.05.1'; } if(!isset($pass)) { $pass = $user_pass; // パスを指定 if($passwd == $pass) { header("Location: $ok"); // OKなら } elseif($passwd) { header("Location: $error"); // NGなら } } ?> <html> <head> <title><?php echo $doc_title; ?></title> <meta http-equiv="Content-Type" content="text/html;Charset=Shift_JIS"> <script type="text/javascript"> <!-- function check() { if(document.formxx.passwd.value.length == 0) { alert("パスワードが入力されてません"); return false; } return true; } //--> </script> </head> <body> <h3><?php echo $doc_title; ?></h3> <form action="<?php echo $script; ?>" method="post" name="formxx"> <input type="password" name="passwd" size="15"> <input type="submit" value=" login " onClick="check()"> <form> <p style="font-size:10px"><a href="http://www.jetman.jp/">プチログイン version:<? echo $ver; ?></a></p> </body> </html>

    • ベストアンサー
    • PHP
  • フォーム入力パスワードとランダム生成されたパスワードを比較

    現在フォームから入力パスワードと PHP でランダム生成された パスワードを比較するスクリプトを組んでます。 スクリプト自体はテスト用ですので フォーム入力用のパスワードは HTML 上に表示されるように なっており、それをコピー&ペーストすれば 良いようにはなっているのですが、どうやっても 比較結果が true になりません。 もはやどこが間違っているのかわかりません。 どなたかお教え頂ければ大変助かります。 何卒、宜しくお願い致します。 ファイル構成は 3つです↓ ran_pass.html ran_pass.php kekka.php --<< 1. フォーム入力 HTML [ ran_pass.html ] ↓ >>------------------------------------------------------------------------------- <html> <head> <title>名前入力</title> </head> <body> <u>名前入力</u><br> <form action="ran_pass.php" method="post" name=""> 名前 : <input type="text" name="name" size="24" border="0"> <input type="submit" name="" value="実行" border="0"> </form> </body> </html> --<< 2. ランダムパスワード生成 [ ran_pass.php ] ↓ >>--------------------------------------------------------------------------- <html> <head> <title>ランダムパスワード生成</title> </head> <body> <?php //フォームからのデータを $name に代入↓ // $name = $_POST[name]; //ランダムパスワードを生成 ↓// function rand_passwd($len = 8, $str = '0123456789abcdefghijklmnopqrstuvwxyz'){ $password = ''; srand ((float) microtime() * 10000000); for($i = 0; $i < $len; $i ++){ $password .= substr($str, rand(0, strlen($str) - 1), 1); } return $password; } //生成されたランダムパスワードを $rpass に代入 ↓// $rpass = rand_passwd(8) . "\n"; $htm = <<< EOD <u>ランダムパスワード生成</u><br> <form action="kekka.php" method="post" name=""> 名前 : $name さん<br><br> パスワード : <input type="text" name="ran_pass" size="24" border="0"> <input type="submit" name="" value="実行" border="0"><br> <input type="hidden" name="name" value="$name" border="0"> <input type="hidden" name="rpass" value="$rpass" border="0"><br> ( ※ パスワードは $rpass です。) </form> EOD; print $htm; ?> </body> </html> --<< 3. パスワード比較 [ kekka.php ] ↓ >>-------------------------------------------------------------------------------------- <html> <head> <title>パスワード認証結果</title> </head> <body> <?php //フォームからのデータを代入↓ // $name = $_POST[name]; $ran_pass = $_POST[ran_pass]; $rpass = $_POST[rpass]; //ランダムパスワードを生成 ↓// if($ran_pass == $rpass){ $kekka = "【 成功 】 パスワードが一致しました。";} else{$kekka = "【 失敗 】 パスワードが一致しませんでした。";} print $kekka; ?> </body> </html>

    • ベストアンサー
    • PHP
  • HTMLのパスワードページ

    htmlのパスワードを作りましたが画面にあるENTERのボタンを必ず押さなければいけないのですがそれをキーボードのENTERキーにする方法はありませんか? <div> <body bgcolor="#000000"> </div> <div align="center"> <img src="baka2.png" width="350" height="350" alt=""><br><br><br><br> <html> <head> <title>特別課外活動部パスワード入力</title> <script type = "text/javascript"> <!-- function matchPass() { var inpass = document.forms[ "pass" ].elements[ "inpass" ].value; var validpass = "baccano"; if( inpass == validpass ) location.href = "main.html"; else alert( "パスワードが間違っています。登録されてない場合は先に登録してください" ); } </script> <link rel="stylesheet" type="text/css" href="http://st.shinobi.jp/img/tadaima/tdftad.css" /></head> <body> <form name = "pass"> <div> <input type = "password" value = "" name = "inpass"> <input type = "button" value = "ENTER" onclick = "matchPass();"> </div> </form>

  • phpでmysqlに接続してテーブルのデータを抽出

    テーブルのデータを抽出したいのですけど テーブルに idと対応するpassワードがあったとすると 入力フォームみたいのを作って 認証したいidとpassワードを入力してもらって それをテーブルにあるのか確認したい場合どうしたらいいでしょうか? 入力フォームはこうなっています <html> <head> <title>ユーザ認証</title> </head> <body> ユーザ認証<br> <form action="ninsyou.php" method="post" name="form1"> ユーザ名: <input name="id" type="text" id="fUserName"> <br> パスワード: <input name="pass" type="password" id="fPassWd"> <input type="submit" name="Submit" value="認証"> <input type="reset" name="Submit2" value="クリア"> </form> </body> </html> わかりにくい質問ですみません。

    • ベストアンサー
    • MySQL
  • パスワード認証がうまくできない

    パスワード認証がうまくできません ----------------------HTMLのフォームの部分---------------------- <form action="http://localhost/cgi-bin/access.pl" method="get"> <td><Div Align="right">ユーザID:</Div></td><td><input type="text" name="ID" size="25"></></td> </tr> <tr> <td>パスワード:</td><td><input type="password" name="PASS" vsize="25"></td> </tr> </table> <input type="submit" value=" ログイン "> ----------------------Perlの認証の部分の内容-------------------- sub ninshou { my $Data=$ENV{'QUERY_STRING'}; my $CheckIDPASS; my $CheckFinish=0; open(IMPUT,"<","ID-PASS.txt"); while(<IMPUT>){ $CheckIDPASS=$_; if($CheckIDPASS eq $Data){ $CheckFinish=1; } } if($CheckFinish==1){ print "認証しました<br>\n"; } else{ print"パスワードが正しくありません<br>"; } ------------------------ID-PASS.txtの内容---------------------- ID=TARO&PASS=0000 ID=JIRO&PASS=1111 ID=SABURO&PASS=2222 --------------各ソースここまで----------------- HTMLのフォームにIDとPASSを入力して療法が正しければ先に進める CGI(Perl)を作ってるんですが、なぜかID-PASS.txtの一番下に 記入しているID=SABURO&PASS=2222 ID SABURO PASS 2222 以外で認証することができません。SABURO / 2222 と入力 したときのみうまく認証できます。 他のID/PASSで認証できないのはなぜでしょうか?

    • ベストアンサー
    • Perl
  • HTML/簡単パスワード

    HTML/簡単パスワード 僕のホームページでは、会員閲覧者にパスワードを入力してもらって、 「入力したパスワード+.html」にジャンプして、 会員専用ページ(ひとり1ページ)を表示させています。 ソースはこの下です。 <br> あなたが決めたパスワードを入力してください<br><br> <form> <input type="password" size="20" name="pass"> <input type="button" value="ログイン" onClick="location.href = this.form.pass.value + '.html';"> </form> このようにしているのですが、 パスワードを間違えたり、 何も記入しないで「ログインボタン」をクリックして 存在しないページにジャンプされてしまうと、 アクセスしたページは、以下のいずれかの理由で閲覧できません ?Yahoo!ジオシティーズ内にページが存在しないため ?URLが間違っているため と表示されてしまいます。 間違えたパスワードを入力されたときに、 自分がつくったエラーページを 表示させたいのですが、 そのようなことは出来るのでしょうか? 回答、よろしくお願いします。

  • クッキー認証>クッキー削除ができない!!

    今回は、クッキー認証画面を作成している際、 エラーが出てしまって先に進めず投稿しました。 下記にプログラム記載 ----H_01.html---------------------------------- <html> <head> <title>クッキー認証</title> </head> <body> <center> <form method="POST" action="H_02.php"> 名前<input type="text" name="name"> パスワード<input type="Password" name="pass"> cookieを記録する<input type="checkbox" name="chk"> <input type="submit" value="送信"> <input type="reset" value="リセット"> </form> </center> </body> </html> ------------------------------------------------ -----H_02.php---------------------------------- <?php $name = $_COOKIE['name']; $pass = $_COOKIE['pass']; $cnt = $_COOKIE['chk']; if ($cnt == True) { $lim = time()+7*24*60*60; //有効期限1週間 setcookie('name',$name,$lim); setcookie('pass',$pass,$lim); } else { setcookie('name'); setcookie('pass'); } ?> ------------------------------------------------ else文内の、setcookie二行にエラーが出ます。 htmlでチェックボックスにチェックが施されていない場合、クッキーを削除。 調べてみたのですが、どうしたらよいのかわからず 投稿しました。よろしくお願いします。

    • ベストアンサー
    • PHP
  • (ホームページ)フォームを使ったパスワード認証について

    <form name="ok"> <input type="text" size="20" name="pass"><input type="button" value="検索" onclick="location.href='http://*アドレス*/'+document.ok.pass.value+'.html';"> </form> このフォームをつかってパスワード認証を使っているのですが、マウスをつかって「ok」ボタンをクリックしたときは正常に動作するにもかかわらず、入力後エンターで認証しようとすると、アドレスに”http://*アドレス*/?pass=入力した内容”と表示されてページに飛ぶことができません。都合上エンターでも正常に動作するように改善したいのですが、どのようにしたらいいでしょうか? ご存知の方、教えてください。よろしくお願いします。

  • PHPについて

    PHPについて。 現在このような形でパスワードを作っております <html> <head> <title>form</title> </head> <body> パスワードを入力してください。 <form name="form" action="./sample04.php" method="POST"> <input name="pass" type="text"> <input type="submit" value="ログイン"> </form> </body> </html> ↑HTMLの文面↑ <?php // パスワードを設定する。 $pass = 1234; // form.htmlからのパスワードを受け取る $form_pass = $_REQUEST["pass"]; ?> <html> <head> <title></title> </head> <body> <?php // form.htmlからの値が$form_passと等しいか評価する if($form_pass == $pass){ echo "ログイン成功<br>", "<a href=\"./top.html\">進む</a>"; }else{ echo "ログイン失敗<br>", "<a href=\"./index.html\">戻る</a>";} ?> </body> </html> 質問はパスワードを複数作りたいのですが・・・ どうすればいいですか?PHPにはあまり詳しくないので・・・

    • 締切済み
    • PHP

専門家に質問してみよう