ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Let's PHPコミュの 【質問】Authが起動できているようでできていません。・゚・(ノ∀`)・゚・。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
どうも先日みなさまのおかげでPearを使えるようになったものです。

せっかくPearを使えるようになったのでPear::Authを使ってプログラムを作ってみたのですがまったく起動しません…

プログラムの内容は下記です。






<?php
require_once("Auth/Auth.php");
function loginFunction(){
print('<html><head><title>ログイン</title></head><body>');
print("<form method=\"post\" action=\"test2.php\">");
print("<table>");
print("<tr>");
print("<td>ユーザー名</td>");
print("<td><input type=\"text\" name=\"username\"></td>");
print("</tr>");
print("<tr>");
print("<td>パスワード</td>");
print("<td><input type=\"password\" name=\"password\"></td>");
print("</tr>");
print("<tr>");
print("<td colspan=\"2\"><input type=\"submit\"></td>");
print("</tr>");
print("</table>");
print("</form>");
print('</body></html>');
}
$params = array(
"dsn" => "mysql://authuser:authpass@localhost/authdb",
"table" => "authtable",
"usernamecol" => "username",
"passwordcol" => "password"
);

$authobj = new Auth("DB",$params,"loginFunction");
$authobj->start();

if ($authobj->getAuth()){
print("認証済みです");
}else{
print("認証されていません");
}
?>









以上の内容なのですが値を入力する画面は表示されるのですが何も入力せずにsubmitボタンを押してもtest2.phpへ飛んでしまいます…


これはおかしいですよね?







Authをインストールする際

WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
WARNING: "pear?MDB" is deprecated in favor of "pear/MDB2"

と警告されたので意味は分かりませんがAuthのインストールがうまくいっていないのかな?と思いAuth.phpの中身を確認したところ









<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */

/**
* Provide compatibility with previous Auth include location.
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.01 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_01.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Authentication
* @package Auth
* @author Martin Jansen <mj@php.net>
* @copyright 2001-2006 The PHP Group
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @version CVS: $Id: Auth.php,v 1.4 2006/03/02 06:53:08 aashley Exp $
* @link http://pear.php.net/package/Auth
* @deprecated File deprecated since Release 1.2.0
*/

/**
* Include Auth package
*/
require_once 'Auth.php';

?>








とほとんどがコメントアウトされており普通に使えるところは最後の

require_once 'Auth.php';

だけみたいでした。



すごいおかしいような気がするのですが、みなさまのAuth.phpはどうなっているでしょうか?


分かる方いらっしゃいましたらご教授お願いいたします。


PHP 5.0.4
Pear 1.6.2
Auth 1.5.4

コメント(8)

>print("<form method=\"post\" action=\"test2.php\">");

これだと、submitボタンを押すと、test2.phpが動作して正解だと思いますよ。
http://pear.php.net/manual/ja/package.authentication.auth.intro.php
のサンプルと見比べるとわかると思います。
すいません間違えていました。

ちゃんとsubmitボタンを押すと自分に返ってくるようファイル名を自分の今のファイルに書き換え

>print("<form method=\"post\" action=\"login.php\">");


データーベースにもusenameとpasswordを予め入力し、認証をおこなおうとするのですが、ユーザー名とパスワードを入れてsubmitボタンを押しても「認証されていません」と表示されます。

きちんとデーターベースのpasswordにはMD5変換して入れているのですがどうしてでしょうか?


やはりAuth.phpに問題があるのでしょうか?
>きちんとデーターベースのpasswordにはMD5変換して入れているのですが
>どうしてでしょうか?

とりあえず、$paramsに「"cryptType" => "none"」を追加して平文でどうなるか試してみるとか。

#dsnなどは問題ないですよね?(念のため・・)
通常の手順でインストールしたAuth.phpなら、問題が発生することはないでしょう。
$paramsで設定しているdsnでphpがMySQLに接続できるか?
テーブルやフィールド名は間違いないか、などを確認してみては?
それでもわからない場合は、Auth.phpの中の所々で、変数の値を確認するなどしてみてはどうでしょう。
みなさま本当に申し訳ございません…

Mysqlのテーブルをタイピングミスしているだけでした…

正常に起動いたしました。


本当に申し訳ございません。

お騒がせいたしました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Let's PHP 更新情報

Let's PHPのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。