• ベストアンサー

ユーザー認証における質問

現在、MySQLにてユーザー管理用のテーブルを用意し、ユーザーを管理しています。 mod_auth_mysqlをインストールし、.htaccessを用意して、認証しています。 これであれば、.htaccessを置いたディレクトリに接続しようとしたらID,PASSを問われるウィンドウが開き入力すると入れる・・・という流れになります。 今回、ページデザイナーの要望で、画面上にformにてIDとパスワードを入力するテキストボックス、そして、照会というボタンを置くのでそれで現在と同じように制限をかけるようにしてほしいといわれています。 フォームからsubmitされた情報を利用し、照会アクションは可能でしょうか? お手数ですがお教えくださいませ。 http://tsuttayo.sytes.net/apache/access/db/ こちらのサイトを参考に、現在の環境を作りました。 宜しくお願い申し上げます。

  • MySQL
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
回答No.2

>パスワードファイルを利用せず、MySQLを使いたいと考えています。 >こういう感じでMySQL対応のモジュールもありそうですね・・・。 それなら、PEAR:Auth で決まりです。 私も使っています。 参考URLに、使用例も載っています。 使用例がわからなければ 「PHP5徹底攻略 エキスパート編(ソフトバンク)」を買えばOKです。

参考URL:
http://pear.php.net/manual/ja/package.authentication.php

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

mod_auth_form とか、使えるかも。

参考URL:
http://module.jp/blog/authentication_from_apache.html
zenon55
質問者

補足

ご回答有難う御座います! このモジュールはかなり惜しいです! パスワードファイルを利用せず、MySQLを使いたいと考えています。 こういう感じでMySQL対応のモジュールもありそうですね・・・。

関連するQ&A

  • IDとパスワードを認証すコードをかきましたが動きません

    phpの超初心者です、よろしくお願いします。 IDとパスワードを認証すコードをかきましたが動きません。 Formから別に使ったdbにあるIDとパスを見に行くコードでが、 dbにあるIDとパスと同じものを打ち込んでも認証しません、 また別のdbにあるIDとパスを打ち込んでも認証するときがあります。 一体どこが悪いのでしょうか。どこが悪いのかさっぱり分かりません。 よろしくお願いします。 --------------------------------------- <?php $conn = mysql_connect(localhost, "root", ""); //DBにコネクト mysql_select_db('login_test', $conn); //'login_test'をselect mysql_query('SET NAMES utf8'); //defalt $res_init=mysql_query('SELECT * from user'); //userからすべてのdataを取得 while($arr = mysql_fetch_assoc($res_init)){ //結果セットが無くなるまでループ foreach($arr as $k => $v){ echo "フィールド ".$k." の値は ".$v; echo "<br />"; } echo "<br />"; } //formからDATAを取得 $id=$_POST['input_ID']; $pass=$_POST['input_pass']; print("入力したid= ".$id." 入力したpass= ".$pass); //認証check if(auth ($id,$pass,$conn)===true){ print("認証成功"); } else{ print("認証不成功"); } //function function auth ($id,$pass,$conn){ $sql = "SELECT * from user WHERE user_id = $id AND password = '$pass'"; $res = mysql_query($sql, $conn); return $res; } ?> <form action="http://localhost/test/test.php" method="POST"> IDの入力:<input type="text" name="input_ID"><br /><br /> Passの入力:<input type="text" name="input_pass"><br /><br /> <input type="submit" name="delete_submit" value="送信"><br /> </form> </body> </html>

    • ベストアンサー
    • PHP
  • PHP+mySQL認証画面

    サーバーの引っ越しで新しいサーバーにてプログラムの動作確認を行っています。 管理者パネルに入るのに、PHPで作成した認証プログラムでログインしようとすると、入力しても何度も聞いてきて入れません。 旧 MySQL5.0.22   phpMyAdmin2.8.2.4 新 MySQL5.1.69 phpMyAdmin3.5.8.1  IDとパスワードはデータベースで設定。 管理者パネルで変更できるようになっている。 $sv = "**"; $dbname = "**"; $user = "**"; $pass = "**"; ログイン認証 //データベースに接続する $conn = mysql_connect($sv,$user,$pass) or die("接続エラー"); mysql_select_db($dbname) or die("データーベース接続エラー"); $sql = "SELECT id, pass FROM pass_t WHERE pno=1"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { $db_user_id=$row['id']; $db_password=$row['pass']; } if(!isset($_SERVER["PHP_AUTH_USER"]) || $_SERVER["PHP_AUTH_USER"] != "$db_user_id" || $_SERVER["PHP_AUTH_PW"] != "$db_password") { header("WWW-Authenticate: Basic realm=\"login\""); header('HTTP/1.0 401 Unauthorized'); echo "ユーザー名またはパスワードが間違っています。<br>"; echo "もう一度はじめからやり直してください。"; exit; } 細々変えて試してみましたが駄目でした。 まだまだわからないことだらけの初心者なので、どうにもならずで 解決策がありましたらぜひ教えて頂けますと幸いです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • .htaccessによるユーザー認証

    FC2の無料ホームページで .htaccess のユーザー認証を試みてますが、上手くいきません。 .htaccessの内容は以下の通りで、  passというフォルダを作って、パスワードファイルを格納しています。 AuthType Basic AuthName "Input your ID and Password." AuthUserFile /pass/passwd.dat require valid-user 状況としては、エラー表示もせず何度もパスワードをきいてきます。 どなたか、お助け下さい!

  • mod_auth_mysqlについて

    mod_auth_mysql を導入したいのですがどうもうまく行きません。 参考ページ内に記載されている手順で行いました。 しかし、httpd.confの #LoadModule auth_mysql_module libexec/mod_auth_mysql.so を LoadModule auth_mysql_module libexec/mod_auth_mysql.so に変更して apachectl configtestを実行すると Syntax error on line 213 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/libexec/mod_auth_mysql.so into server: /usr/local/apache/libex ec/mod_auth_mysql.so: undefined symbol: mysql_connect というエラーが出力されます。 libexec/mod_auth_mysql.soも存在していますし、 mod_auth_mysqlをコンパイルする際も mysql.hなどのライブラリも存在しています。 mysql-4.1.15 apache 1.3.34 mod_auth_mysql-3.2 Redhat 8.0 どこでひっかかっているのでしょうか。 参考ページ:http://www.y-min.or.jp/~nob/Linux/apache-mysql.html

  • 入力したユーザIDの取得

    入力フォームに入力したユーザIDやパスワードを CGIで受け取ることはできるのですが、 .htaccess を利用してIDを管理している場合に、 アクセス時に出るプロンプトに入力された ユーザIDとパスワードを受け取る方法が解かりません。 このようなことが可能であれば教えていただけませんか? OSは : Solaris WEBサーバとして : Apache を使用しています。

    • ベストアンサー
    • CGI
  • HTTPのBASIC認証につきまして。

    こんにちは、kanpoと申します。 PHPマニュアルに以下のような記述があったのですが 下記について質問させてください。 manual start======================================================= Example 2-1. HTTP 認証の例 <?php if(!isset($PHP_AUTH_USER)) { Header("WWW-Authenticate: Basic realm=\"My Realm\""); Header("HTTP/1.0 401 Unauthorized"); echo "ユーザーがキャンセルボタンを押した場合に送られるテキスト\n"; exit; } else { echo "こんにちは $PHP_AUTH_USER.<P>"; echo "あなたは、パスワードとして $PHP_AUTH_PW を入力しました。<P>"; } ?> 単に $PHP_AUTH_USER、$PHP_AUTH_PW を出力するのではなく、 ユーザー名とパスワードの有効性をチェックしたいと思うかもしれません。 その場合、クエリーをデータベースに送るか、ある dbm ファイル中の ユーザーを調べるといったことをすることになるでしょう。 manual end========================================================= この、”クエリーをデータベースに送るか”というところなんですが これはUID&PASSをDBに登録されている情報と照合をかけるという意味だと思うのですが、ポップアップWindowで入力されたUID&PASSを.htaccessにかかれたUID&PASSで認証しそのUID&PASSをDBによりもう一度照合するということでしょうか? それとも、ポップアップで入力してもらったUID&PASSをそのままDBにて認証できるのでしょうか? よろしくご教授ください。

    • ベストアンサー
    • PHP
  • ベーシック認証と、サイト内入力

    ベーシック認証と、サイト内入力についてご教授頂けると幸いです。 一般には、見せたくないページをhtaccessを使ってベーシック認証にしています。 当然、IDとPASSを訪ねる画面が表示されます。 でも、多くのサイトは、サイト内にIDとPASSを入力させログインのボタンでログインみたいになっていると思います。 MySQLなどを使えば出来そうですが、そういうものを使用せず、 PHPやJSなどで処理が出来ないものかと悩んでいます。 どうぞ、よろしくお願い致します。

  • BASIC認証のユーザー名をPHPで取得したい

    とあるレンタルサーバで、 BASIC認証のホームページを作成しております。 BASIC認証は「.htaccess」で AuthType Basic AuthName "メンバー専用ページ" AuthUserFile "ファイルパス" require valid-user ログイン後のページにアクセス解析機能をつけたいと思っていますが、BASICで入力したログインのユーザ名が取得できなくて困っております。 echo "test1:" . $_REQUEST['PHP_AUTH_USER']. "<br />\n"; echo "test2:" . $_SERVER['PHP_AUTH_USER']. "<br />\n"; echo "test3:" . $PHP_AUTH_USER . "<br />\n"; と書いて画面に出力してみましたが、正しくログインしていても 空又はNULLの状態です。 Apacheの設定?phpの設定?ソースコードの間違え? などわからない状態になっています。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • [Debian] MySQLとPHPを用いて簡易的なWEB認証画面の作成

    学校の課題でMySQL、PHP、Apache2を用いてウェブの認証画面が作成する必要があります。 サーバーのOS は Debian Linux を利用しております。 http://www.debianhelp.co.uk/mysqlapache.htm 上記サイトを見ながら、手順に従ってやろうと思ったのですが、最初の apt-get で躓きました。 libapache2-mod-php libapache2-mod-auth-mysql この2つのファイルが見つからずにインストールができません…。 また、上記サイトの説明と私が持っているApache2の参考書だと説明が異なり、困っております。 参考書ではmod_auth_mysqlをコンパイルする必要があるとなっているのですが…。 どなたか、MySQL,PHP,Apache2を利用したWeb認証画面の作成方法で、参考となるサイトがありましたら、ご教授願います。 よろしくお願いいたします。

  • pukiwikiのユーザ認証の設定で困っています・・・。

    初めまして。 現在、自宅のサーバーでpukiwikiを使ってHPを構築しているのですが、 ユーザ認証の設定が中々うまくいかずに困っているのです。 今、下記のように設定してトップページからユーザ認証するのには 成功致しました。 ///////////////////////////////////////////////// // User definition $auth_users = array( // Username => password 'ユーザID' => 'パスワード', // Cleartext 'bar' => '{x-php-md5}f53ae779077e987718cc285b14dfbe86', // PHP md5() 'bar_passwd' 'hoge' => '{SMD5}OzJo/boHwM4q5R+g7LCOx2xGMkFKRVEx', // LDAP SMD5 'hoge_passwd' ); ///////////////////////////////////////////////// // Authentication method $auth_method_type = 'pagename'; // By Page name //$auth_method_type = 'contents'; // By Page contents ///////////////////////////////////////////////// // Read auth (0:Disable, 1:Enable) $read_auth = 1; $read_auth_pages = array( // Regex Username '##' => 'ユーザID', '#HogeHoge#' => 'hoge', ); ///////////////////////////////////////////////// // Edit auth (0:Disable, 1:Enable) $edit_auth = 1; $edit_auth_pages = array( // Regex Username '##' => 'ユーザID', '#HogeHoge#' => 'hoge', ); しかし、ユーザ定義でユーザを追加して認証をかけたいページ名を指定 しても認証が動いてくれません。 トップページに認証を付けると他は動かなくなってしまったりするの でしょうか? できれば、一部のページを一部のユーザのみが編集できるように、 認証をかけたいのです。 どうか、こんな無知な私にご指導頂いてもよろしいでしょうか? 自宅サーバーには、 Active Perl 5.8.8 Build 822 Apache HTTP Server 2.0.63 pukiwiki1.4.7 をインストールして動かしています。

    • 締切済み
    • PHP