[PHP-users 19324]Re: mhash関数について

Tetsuya Saito tetuya @ ophiuchus.info
2003年 12月 11日 (木) 23:36:47 JST


石田様

ご指導ありがとうございます。
斉藤でございます、

石田様ご指摘の通り至る所に、記述ミスがあるようです。
再度徹底して見直しソースコードを完成させたいと思います。

色々と丁寧なご指導ありがとうございました。
これからもよろしくお願い申し上げます。

On Thu, 11 Dec 2003 18:45:03 +0900
"らい" <mr2gts_zero @ hotmail.com> wrote:

> はじめまして
>  石田@へぼへぼ
> です。
> 
> 斉藤様
> 見たところ、以下の行に ”;” が抜けております。。。
> 
> 21行目 > $salt=mhash_keygen_s2k(MHASH_SHA1, $_POST["userpassword"],
> substr(pack("h*", md5(mt_rand())), 0, 8), 4)
> 32行目 > $newinfo["objectclass"][1] = "mailaccount"
> 33行目 > $newinfo["objectclass"][2] = "inetorgperson"
> 
> 他にも原因はありそうですが、とりあえず、ソースをよく見ましょう。
> 
> 
> ----- Original Message ----- 
> From: "Tetsuya Saito" <tetuya @ ophiuchus.info>
> To: "PHP-users ML" <php-users @ php.gr.jp>
> Sent: Thursday, December 11, 2003 6:00 PM
> Subject: [PHP-users 19315] mhash関数について
> 
> 
> > 皆さん
> > こんばんわ
> >
> > 斉藤@ophiuchusと申します。
> > 先ほどは、単純なtypoでMLを汚してしまい申し訳ありませんでした。
> >
> > さて、今回識者の皆様にお伺いした意味とは、phpを使用したmhash関数について
> > です。
> > 当然、php-4.3.4をビルドするときには下記のように
> > ./configure --with-apxs2=/usr/local/apapche2/apxs \
> > --enable-mbstring
> > --enable-mbregex
> > --with-ldap=/usr/local
> > --with-mhash=/usr/local
> >
> > と言う形でビルドしインストールしました。
> > また、mhash関数自体はmhash-0.8.18をinstallしておりますので、問題なく使え
> > る物と思います。
> >
> > しかしながら、長文になってしまいますが、下記phpソースコードのmhash関数の
> > 部分でエラーになってしまいます。
> > これは、私のtypo、もしくはmhash関数のバージョン等において何らかの問題が
> > あるのでしょうか。
> >
> > 識者の皆様、ご指導の程、よろしくお願いします。
> >
> > [ソースコード]
> > <?php
> > require_once "auth.inc";
> > if ($info[0]["mailgroup"][0] !== "admin") {
> > //admin以外のログインは許可しない
> > exit;
> > }
> > ?>
> > <html>
> > <body>
> > <?php
> >
> > //テキストフォームから追加するユーザーのDNを作成
> > $dn = "cn={$_POST["cn"]},{$_SESSION["d_dn"]}";
> >
> > /*SSHAパスワードの作成準備
> >  *CRYPT形式の場合は
> >  *$newinfo["userpassword"] = "{CRYPT}" . crypt($_POST["userpassword"]);
> >  *MD5形式の場合は
> >  *$newinfo["userpassword"] = "{MD5}" . base64_encode(mhash(MHASH_MD5,
> $_POST["userpassword"]));
> >  */
> > mt_srand((double) microtime()*1000000);
> > $salt=mhash_keygen_s2k(MHASH_SHA1, $_POST["userpassword"],
> substr(pack("h*", md5(mt_rand())), 0, 8), 4)
> >
> > //以下LDAPエントリーとなる連想配列を作成
> > $newinfo["userpassword"] = "{SSHA}" . base64_encode(mhash(MHASH_SHA1,
> $_POST["userpassword"] . $salt) . $salt);
> >
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > 波線の部分が25行目に相当します
> > $newinfo["cn"] = $_POST["cn"];
> > $newinfo["sn"] = $_POST["sn"];
> > $newinfo["givenname"] = $_POST["givenname"];
> > $newinfo["objectclass"][0] = "top";
> > $newinfo["objectclass"][1] = "mailaccount"
> > $newinfo["objectclass"][2] = "inetorgperson"
> > $newinfo["homedirectory"] =
> "/home/mailuser/{$_SESSION["domainname"]}/{newinfo["cn"]}";
> > $newinfo["mail"] = "{newinfo["cn"]@{$_SESSION["domainname"]}";
> > $newinfo["maildir"] = $newinfo["homedirectory"} . "/Maildir/";
> > $newinfo["mailactive"] = "TRUE";
> > $newinfo["domainname"] = $_SESSION["domainname"};
> > $newinfo["mailgroup"] = "user";
> >
> > //エントリーの追加
> > $c->add($dn, $newinfo"\);
> >
> > //以下結果の表示
> > ?>
> > 新しいユーザーが追加されました。
> > <hr>
> > <a href="index.php>トップページ</a><br>
> > <a href="logout.php>ログアウト</a>
> > </body>
> > </html>
> >
> > [上記ソースコードを実行したときに出るエラー]
> > Parse error: parse error in /usr/local/apache2/htdocs/imap/add.php on line
> 25
> >
> > -- 
> > Tetsuya Saito <tetuya @ ophiuchus.info>
> >
> >
> > _______________________________________________
> > PHP-users mailing list
> > PHP-users @ php.gr.jp
> > http://ns1.php.gr.jp/mailman/listinfo/php-users
> >
> 
> 
> 石田健二 mr2gts_zero @ hotmail.com
> _______________________________________________
> PHP-users mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users

-- 
Tetsuya Saito <tetuya @ ophiuchus.info>




PHP-users メーリングリストの案内