• 締切済み

パスワードをかける

初めまして。初心者です。 社員番号、パスワードを入力し、個人のページに飛ぶような仕組みを作りたい のですが、 かなり苦労しています。 Requestの社員番号と、データベースの社員番号を比較し、 間違っていれば、エラーが出るようにし、 あっていれば、次のページに進むようにしたいのです。 見よう見まねで、↓のように作ってみたのですが・・・ これでは全然ダメだという事は分かるのですが、 どうしたらいいのか分かりません。 どうかお教えください。 データベース名:career_web テーブル:pass (社員番号とパスワードのテーブル) テーブル:plan (社員番号と、個人ページに載せたい情報(所属部署等) のテーブル) <% Set cn = Server.CreateObject("ADODB.Connection") cn.Open "career_web" sql = "SELECT *" sql = sql & " FROM pass" sql = sql & " WHERE (社員番号 = '" & Request("社員番号"))" On Error Resume Next Set rs1 = cn.Execute(sql) If (rs1("パスワード") <> (rs1(" & Request("パスワード")) Then Response.Write "<tr><td><font size='2'>正しいパスワードを入力し てください</font></td></tr>"   Else End If rs1.Close %> データベースの社員番号と、Requestの社員番号が 一致しない場合に、 ”正しいパスワードを入力してください” と出し、 一致した場合は blankのページに飛ぶような設定にしたいのですが、 ルールの定義の仕方がまったく分からないのです。

みんなの回答

  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

rs1にCountのプロパティなかったでしたっけ? あれば、 if rs1.Count = 0 then Response.Write "<tr><td><font size='2'>正しい社員番号を入力してください</font></td></tr>" end if とパスワードチェックの前に書けるとおもいます。 もしCountプロパティがなければ、ヒットするデータがあれば社員番号が""ではないので、それを利用して、 if rs1("社員番号") = "" then Response.Write "<tr><td><font size='2'>正しい社員番号を入力してください</font></td></tr>" end if と書けると思います。

関連するQ&A

  • パスワード認証がうまくできない

    パスワード認証がうまくできません ----------------------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
  • DB検索結果のテーブルにリンクが貼れません

    板違いかもしれませんが、一番近いと思いましたのでhtmlのカテゴリに質問させて頂きます。 検索条件を入力しデータベ―スへの検索結果をテーブルに表示しているのですが、そのテーブルの任意の行をダブルクリックすることで、その行が持つファイルを開く。という処理を考えております。 テーブルは、以下のような構成です。 id | name | filepath --------------------------- 1 | a-san | c:\a-san.pdf 2 | b-san | c:\b-san.pdf --------------------------- ファイルパスがデータベース内にあるので、jspファイル内で、 <tr ondblclick="<%= rs.getString("filepath")%>">   <td><%=rs.getString("id") %></td>   <td><%=rs.getString("name") %></td> </tr> ※ rsには、検索結果の行が入っています。 と記述し、試してみましたが<tr>の行で文法エラーとなってしまいました; 何か良い方法などあれば、教えて頂けますでしょうか? 開発環境は以下の通りです。 データベース:SQL Server 2005 統合開発環境:eclipse webサーバ  :tomcat5.5

    • ベストアンサー
    • HTML
  • タイムアウトして表示できません

    以下を実行すると数分かかった挙句タイムアウトします。 どう改善すれば表示できるでしょうか? IIS 5.1 SQL Server 2005 DBへの接続はconfig.aspで設定してあり、以下とは別のスクリプトの時にconfig.aspを読み込んでのDB接続はできています。 <!--#include file="config.asp" --> <table> <tr> <td><span><b>最終10ログイン</b></span></td> </tr> <tr> <td><span>名前</span></td> <td><span>ログアウト時間</span></td> </tr> <% set rs = Server.CreateObject("ADODB.recordset") sql="select top 10 * from テーブルA, テーブルB where テーブルB.列A=0 AND テーブルA.Id=テーブルB.列1 order by 列B desc" rs.open sql,conn,1,1 do while not rs.eof %> <tr> <td height="19" align="middle"><%=rs("列2")%></td> <td align="middle"><%=rs("列B")%></td> </tr> <% rs.movenext rs.close loop set rs=nothing %>

  • FLASHとの連携について

    FLASHに値を渡すためPHPを書いていますが行き詰ってしましました。 下の文面の  $messeid = ?; echo "&res1=".$messeid."&"; の$messeidに<?=$rs['id']?>の値を代入したいのですが出来ません。 ブラウザで確認するとテーブルに値がちゃんと入って表示されますし   $messeid = 1; とするとFLASH側で1と表示されますのでデータベース、FLASHともに通信は出来ているようです。 (xx)/~何卒ご指導お願いいたします。 <?php require_once("DB.php"); $dbUser = "Youser"; // ユーザー名 $dbPass = "Pass"; // パスワード $dbHost = "localhost"; // ホスト名 $dbName = "Database"; // データベース名 $dbType = "mysql"; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)){ die($conn->getMessage()); } // POSTされたデータを受け取り、エスケープします。 $s_designid = addslashes($_POST['search_designid']); $s_newpass = addslashes($_POST['search_newpass']); $sql = <<<EOS SELECT * FROM passkanri where back_pass = '$s_designid' and new_pass = '$s_newpass'; EOS; //この$messeidにデータベースから得た値を代入したい $messeid = <?=$rs['id']?>; echo "&res1=".$messeid."&"; // SQL文を発行 $result = $conn->query($sql); if (DB::isError($result)) { die ($result->getMessage()); } // 検索件数の表示 $count = $result->numRows(); print "検索結果は" . $count . "件です。<BR>"; if($count > 0){ ?> <TABLE width="450" border="1" cellspacing="0" cellpadding="8"> <TBODY> <TR><TH>ID</TH><TH>DESIGN_ID</TH><TH>BACK_PASS</TH><TH>NEW_PASS</TH></TR> <?php while ($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)) { mysql_query("set names utf8"); ?> <TR> <TD align="center"><?=$rs['id']?></TD> <TD align="center"><?=$rs['design_id']?></TD> <TD align="center"><?=$rs['back_pass']?></TD> <TD align="center"><?=$rs['new_pass']?></TD> <?php } ?> </TBODY></TABLE> <?php } $result->free(); $conn->disconne ?>

    • 締切済み
    • PHP
  • 複数の値を1つのフォームで受ける効率的な方法

    1つのフォームに氏名・年齢・電話番号の3つの項目があり、それぞれ 検索用のテキストボックスと検索ボタンが配置されています。 氏名のテキストボックスと検索ボタンを"A" 年齢のテキストボックスと検索ボタンを"B" 電話番号のテキストボックスと検索ボタンを"C"として 検索キーを入力して検索ボタンを押下して次のフォームに移ります。 その受けるフォームを現在、作成しているのですが 受け取った値がAであれば氏名で、Bであれば年齢で、Cであれば電話番号で それぞれSQLにてデータベースのテーブルより検索して表示させるフォームを作りたいのですが 受け取った値がいずれの値なのかを判断して表示させる方法が思いつきません。 また、検索するテーブルも5つあります。 効率のいい記述をご教示願います。 ASPの時は以下の記述をしておりました。 長いのでRS1だけまで表記しました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@ LANGUAGE="VBScript" %> <HTML> <HEAD> <TITLE>検索結果一覧</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <CENTER> <% If Request.Form("年齢") <> "" Then sqldata1 = "select * from テーブル1 where 年齢='" & Request.Form("年齢") & "' order by ファイル日付 desc" sqldata2 = "select * from テーブル2 where 年齢='" & Request.Form("年齢") & "' order by ファイル日付 desc" sqldata3 = "select * from テーブル3 where 年齢='" & Request.Form("年齢") & "' order by ファイル日付 desc" sqldata4 = "select * from テーブル4 where 年齢='" & Request.Form("年齢") & "' order by ファイル日付 desc" sqldata5 = "select * from テーブル5 where 年齢='" & Request.Form("年齢") & "' order by ファイル日付 desc" End If Dim Conn,SQL1,RS1,SQL2,RS2,SQL3,RS3 Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionTimeout = 5000 'Conn.open "driver={SQLServer};Server=raichou;UID=ID;PWD=PW;Database=NAME" Conn.open "NAME","ID","PW" SQL1 = sqldata1 Set RS1 = Server.CreateObject("ADODB.Recordset") RS1.Open SQL1, Conn,3,3 %> <span style="font-size:24pt;color:#ff0033"><B>検索結果一覧</B></span> <TABLE border="3" BORDERCOLOR="#9999ff" cellspacing="1" cellpadding="1"> <TR> <TD><span style="font-size:10pt;color:#993333">氏名</span></TD> <TD><span style="font-size:10pt;color:#993333">電話番号</span></TD> <TD><span style="font-size:10pt;color:#993333">年齢</span></TD> </TR> <% Do while Not RS1.EOF %> <TR> <TD><span style="font-size:10pt;color:#000000"><%=RS1("氏名")%></span></TD> <TD><span style="font-size:10pt;color:#000000"><%=RS1("電話番号")%></span></TD> <TD><span style="font-size:10pt;color:#000000"><%=RS1("年齢")%></span></TD> <TD align="center"> <FORM action="view.asp?table=テーブル1" method="post"> <input type="hidden" name="id" value="<%=RS1("ID")%>"> <input type="submit" value="詳細"> </form> </TD> </TR> <% RS1.MoveNext Loop RS1.close Set RS1=Nothing Conn.close Set Conn=Nothing %> </TABLE> <BR> <INPUT TYPE="button" value="戻る" onClick="javascript:history.back();"> </CENTER> </BODY> </HTML>

    • ベストアンサー
    • Java
  • パスワードのデータをおくるには、

    <TR> <TD ALIGN="center">会員パスワード</TD><TD>:</TD> <TD><INPUT TYPE="password" WIDTH=8 name="PASSWORD"></TD> </TR> というのがあります。テキストをPOSTすることは、できるのですが、このパスワードをポストするのは、どのようにすればよいのでしょうか? Valueがないですよね。パスワードにすると、直接入力が送られるのでしょうか。 では、直接入力をせず、プログラムで(Valueとして)POST するのは、どのようにすればよろしいですか どうかお願いします。

    • 締切済み
    • CGI
  • php + mysql でフォーム作成時のエラー

    データベースから取り出したデータをラジオボタンで選択し、それをデータベース(別のテーブル)に追加させる機能を作りたいです。 非常に初歩的なことだとは思うのですがご教授ください。 MySQL 4.0.27 PHP 5.2.11 <FORM ACTION="cone3.php" METHOD="post"> <?php $srv = ""; // サーバー名 $id = ""; // ユーザーID $passwd = "; // パスワード $dbn = ""; // データベース名 $sql = "SELECT code, lname, lecturer, kind, gradetype FROM Lecture"; // SQL文 // データベースに接続する $db = mysql_connect($srv,$id,$passwd); mysql_select_db($dbn,$db); $rs = mysql_query($sql,$db); //--- テーブルのレイアウト --- 開始 -----------------------> print("<TABLE><TR>"); print("<TR><th> </th><th>講義名</th><th>教員</th><th>科目区分</th><th>配当学年</th></tr>"); while($row = mysql_fetch_array($rs)) { print '<tr><td><input type="radio" name="regist" value="$row['code']"></td>'; print '<td>' . $row['lname'] . '</td>'; print '<td>' . $row['lecturer'] . '</td>'; print '<td>' . $row['kind'] . '</td>'; print '<td>' . $row['gradetype'] . '</td>'; print '</tr>'; print ("</TR>"); } print("</TABLE>"); print_r($_POST); echo "<br />\n"; mysql_free_result($rs); mysql_close($db); //--- 終了 ---> ?> <input type="submit" name="submit" value="送信"> </form> 以上のようなソースでラジオボタンで配列の$row[code]の値を送りたいんですがうまくいきません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • JSPからMysqlへの接続

    タイトルどおり、以下のようなコードでMysqlデータベースに接続しようとしました。 <%@ page contentType="text/html; charset=Shift_JIS" import="java.sql.*" %> <html> <head> <title>データを表示する</title> </head> <body> <% //データベース設定 String sv = "localhost"; //サーバ名 String db = "test"; //データベース名 String user = "feifei"; //ユーザ名 String pass = "feifei"; //パスワード String encode = "EUC_JP"; //文字コード //データベースに接続する Class.forName("org.gjt.mm.mysql.Driver"); String url = "jdbc:mysql://" + sv + "/" + db + "?user=" + user + "&password=" + pass + "&useUnicode=true&characterEncoding=" + encode; Connection conn = DriverManager.getConnection(url); //データを取得する Statement st = conn.createStatement(); String sql = "SELECT * FROM table1"; //実行するSQL ResultSet rs = st.executeQuery(sql); //データを全件表示する out.println("<table border=0>"); while(rs.next()){ out.println("<tr>"); out.println("<td>" + rs.getInt("id") + "</td>"); out.println("<td>" + rs.getString("name") + "</td>"); out.println("<td>" + rs.getInt("point") + "</td>"); out.println("</tr>"); } out.println("</table>"); //データベース接続を閉じる conn.close(); %> </body> </html> しかし、なぜかわかりませんが、表示した内容のうち日本語はすべて[?]と文字化けしてしまいます。 ちゃんとディレクティブで「charset=Shift_JIS」と指定しているのになぞです。 どうか教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • 【JSPがブラウザで表示されません】

    こんばんわ。 教えて頂きたいのですが、以下のjspを記述しましたが番号・名前・電話番号の項目表示のみで肝心のテーブル内容が表示されません。 何が原因かわからず困っています。 教えて下さい!お願い致します。 <%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <%@page import="java.sql.*"%> <%! // サーブレットのinitメソッドに相当 public void jspInit() { try { // JDBCドライバをロード Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (Exception e) { e.printStackTrace(); } } %> <html> <head><title>テーブル_JSP版</title></head> <body> <P>データベース一覧</P> <table border='1'><tr><th>番号</th><th>名前</th><th>電話番号</th></tr> <% // データベースへのアクセス開始 Connection con = null; Statement stmt = null; ResultSet rs = null; try { // データベースに接続するConnectionオブジェクトの取得 con = DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=Name","ID","PW"); // データベース操作を行うためのStatementオブジェクトの取得 stmt = con.createStatement(); // SQL()を実行して、結果を得る rs = stmt.executeQuery( "SELECT 番号, 名前, 電話番号 FROM Table"); // 得られた結果をレコードごとに表示 while (rs.next()) { %> <tr> <%-- レコードのCUSTOMER_NUMフィールドを表示 --%> <td><%= rs.getString("番号")%></td> <%-- レコードのNAMEフィールドを表示 --%> <td><%= rs.getString("名前")%></td> <%-- レコードのPHONEフィールドを表示 --%> <td><%= rs.getString("電話番号")%></td> </tr> <% } } catch (Exception e) { e.printStackTrace(); } finally { // データベースとの接続をクローズ try { rs.close(); } catch (Exception e) {} try { stmt.close(); } catch (Exception e) {} try { con.close(); } catch (Exception e) {} } %> </table> </body> </html>

    • ベストアンサー
    • Java
  • PHPでのMYSQL接続のデータ表示

    PHPのバージョンは4.2.3です。 index.php という一覧表示画面から 一意なKey文字列を受け取りそのデータに合致する データの詳細を表示する画面です。 実データ部分が表示されず困っています。 実行時のPHPのエラーも出力されないので いまいちどこが悪いのかわかりません アドバイスよろしくお願いします。 <?php require_once( "common.php" ); require_once( "const.php" ); if(! $conn = mysql_connect( 'ホスト名','ユーザー名','PASS')){ die( 'MYSQL接続失敗'); } $sql = ""; $sql .= "select * from LIVE "; $sql .= "ORDER BY Date DESC "; $sql .= "WHERE ID=".$_REQUEST[ "KEY" ]; echo $sql; mysql_select_db("DB名",$conn); $rs = mysql_query($sql, $conn); $DATE=$rs['DATE']; $TITLE=$rs['TITLE']; $PLACE=$rs['PLACE']; $ARTIST=$rs['ARTIST']; echo $DATE; echo $TITLE; echo $PLACE; echo $ARTIST; //$rec = mysql_fetch_array( $rs, MYSQL_ASSOC ); ?> <HTML> <HEAD><TITLE>ライブ予定</TITLE></HEAD> <BODY><H1 ALIGN="CENTER">ライブ予定詳細</H1> <A HREF="./">戻る</A> <TABLE BORDER="1" ALIGN="CENTER" WIDTH="100%"> <TR><TD BGCOLOR="#FFFFCC">日付</TD> <TD><?php HESC($rec['DATE']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">タイトル</TD> <TD><?php HESC($rec['TITLE']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">場所</TD> <TD><?php HESC($rec['PLACE']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">アーティスト</TD> <TD><?php HESC($rec['ARTIST']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">本文</TD> <TD></TD></TR> </TABLE> </BODY></HTML>

    • ベストアンサー
    • PHP

専門家に質問してみよう