いつもお世話になっております。

ユーザーから入力していただいたパスワードをcrypt関数にて、暗号化したいのですが、

crypt($inpass);

以下のようなエラーメッセージがでてしまいます。
Call to unsupported or undefined function crypt() in

この関数を使用するのに特別な作業等が必要なのでしょうか?

環境は
Win98se
ANHTTPD1.36
php4です。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

PHPマニュアルによると、(PHP 3, PHP 4 >= 4.0b1)で


サポートされているようですので、特別な作業無しで
使用できるはずですが・・・。

また、PHPマニュアルによると
「salt引数が指定されない場合、PHPによりランダムに生成されます。」
となっていますので、関数の使用方法も間違っていないようです。

私の環境(PHP4.0.6)では、問題なく使えます。

この際、md5()関数を使用してはいかがでしょうか?

この回答への補足

アドバイス誠にありがとうございます。
回避策としてmd5を使用して構築しているのですが、cryptは、私の環境だとだめということは、私自身の環境に問題があるということですね。
md5ではうまくいってます。

今回はこちらで構築し、サーバーにアップロードする時にでも、もう一度crypt関数を試してみます。

ご親切なアドバイスありがとうございました。m(__)m

補足日時:2001/11/28 16:48
    • good
    • 0

私はPerlからcryptを使用していますが、引数は二つです。


書籍を参考にして使っていますので詳しくは解りませんが、以下の様な感じです。

$saltset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./";
$n1 = int(rand 64);
$n2 = ($n1 + time) % 64;
$salt = substr($saltset, $n1, 1) . substr($saltset, $n2, 1);
$pass = crypt($pass, $salt);

crypt自体の使い方は同様なのではないかと予想しているのですが…。
一応御確認下さい。
    • good
    • 0
この回答へのお礼

すばやいアドバイス誠にありがとうございます。

Perlのcrypt関数は私も調べました。
今回の原因は私の環境のせいだということで、
回避策で構築してみます。

ありがとうございました。

お礼日時:2001/11/28 16:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QFatal error: Call to undefined function mb_internal_encoding()

CAPTCHAのサンプルプログラムを動かそうと思ったのですが
Fatal error: Call to undefined function mb_internal_encoding() in ”プログラムのパス”
のようなエラーがでて実行することができません。

そこで、このエラー文で検索したところphpの日本語利用の環境ができていないのでは?
との回答を見つけたので、参考ページを見て設定を行ったのですが、いまだにエラーが出て実行することができません。

ちなみにこのようなmb_internal_encodingのサンプルを動かすと
<?php
/* 内部文字エンコーディングをUTF-8に設定 */
mb_internal_encoding("UTF-8");
/* カレントの内部文字エンコーディングを表示 */
echo mb_internal_encoding();
?>

Fatal error: Call to undefined function mb_internal_encoding() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mbtest.php on line 2

この様なエラーが出ます。

日本語利用の為の設定で参考にしたサイトは
http://www.phpbook.jp/install/phpini/index3.html
こちらです。

phpのバージョンは5.2.6でOSはXPSP2です

CAPTCHAのサンプルプログラムを動かそうと思ったのですが
Fatal error: Call to undefined function mb_internal_encoding() in ”プログラムのパス”
のようなエラーがでて実行することができません。

そこで、このエラー文で検索したところphpの日本語利用の環境ができていないのでは?
との回答を見つけたので、参考ページを見て設定を行ったのですが、いまだにエラーが出て実行することができません。

ちなみにこのようなmb_internal_encodingのサンプルを動かすと
<?php
/* 内部文字エンコーディン...続きを読む

Aベストアンサー

問題解決にはならないですが、とりあえず
phpinfo();
で"mbstring"の項目があるかチェックしてみましょう。

なければphp.iniの問題でしょう。
あれば表示内容を再確認です。

QFatal error: Call to undefined function mb_convert_kana() について

Fatal error: Call to undefined function mb_convert_kana()
は、マルチバイトが使えないためと、ネットで見つけたのですが、PHPを
./configure --with-postgresql --without-mysql --with-apxs2=/usr/local/apache2/bin/apxs --with-mbstring --with-mbregex で、コンパイル⇒make⇒make installしたのですが、どこか間違っているのでしょうか?

因みにPHP5で、/usr.local/php.iniのmbstringのところは、全てコメントです。

よろしくご教示お願いします。

Aベストアンサー

再コンパイルの前に
make clean
を実行してみてはどうでしょうか。

QCall to undefined function mysql_connect() が出て、つながりません

お世話になります。

先日PHPをはじめたばかりの初心者です。

xamppを使用せず、個別にPHPとMySQLをインストールしたのですが、
表題のエラーが出て、つながりません。ネットで調べてみましたが、
php.iniというものもどこにもなく、それに似たphp.ini-distという
ファイルも、extension=php_mysql.dll、extension=php_mysqli.dllの
二行のコメントをはずすなどをやってみたのですが、いまだに
つながりません。
ユーザ名やパスワードも、何度も確認しました。

原因と対策をお教えください。

尚、PHPは5.2.12、MySQLは5.1.42です。

以上、宜しくお願いいたします。

Aベストアンサー

>php.iniというものもどこにもなく
php.ini に名称変更して保存するんですよ。
できれば、セキュリティ強化された設定になってる
php.ini-recommended
の方を編集して、php.ini のファイル名で保存
それから、php.ini をおいてあるディレクトリーをwindows の環境変数path に登録、windows を再起動。
これについては、phpマニュアルにもOSごとに記述があるので熟読して下さい。
http://jp.php.net/manual/ja/install.windows.manual.php
xamppに任せずにやろうという気概があるなら、セキュリティに気を遣った設定にも心がけてください。

QFatal error: Call to undefined function mb_convert_case()が出ました。

下記のURL1・2を参考にしてphp5&Apache2.0をインストールして、php4の時に使っていたファイルを開いたら、Fatal error: Call to undefined function mb_convert_case()
というエラーが出ました。
1.http://allabout.co.jp/internet/database/closeup/CU20061118A/index.htm
2.http://allabout.co.jp/internet/database/closeup/CU20050321A/index2.htm

どうすれば解決できるのでしょうか。
環境はwindows php5 Apache2です。
よろしくお願い致します。m( ._ .)m

Aベストアンサー

1のURLの
5.3 extension_dirを指定
の確認
5.4 使用するDLLを指定
でphp_mbstring.dllを選択しているかを確認
php.iniを編集したら最後にApache再起動をお忘れなく

QFatal error: Call to undefined function mb_language

XOOPS Cube Legacy をインストール中下記エラーでつまずき解決できません。
Fatal error: Call to undefined function mb_language() in C:\Inetpub\wwwroot\install\language\ja_utf8\install.php on line 190

-----------------------------
line 190からの中身は

190:mb_language( 'Japanese' ) ;
191:mb_internal_encoding( 'UTF-8' ) ;
192:mb_http_output( 'UTF-8' ) ;
193:@ini_set('default_charset', _INSTALL_CHARSET);
194:?>
となっており190をコメントにすると191-193でもエラーになってしまいます。

解決方法ご存知でしたらご伝授ください。

環境
Windows XP SP2
IIS
PHP5,Mysql インストール、初期動作確認済

XOOPS Cube Legacy をインストール中下記エラーでつまずき解決できません。
Fatal error: Call to undefined function mb_language() in C:\Inetpub\wwwroot\install\language\ja_utf8\install.php on line 190

-----------------------------
line 190からの中身は

190:mb_language( 'Japanese' ) ;
191:mb_internal_encoding( 'UTF-8' ) ;
192:mb_http_output( 'UTF-8' ) ;
193:@ini_set('default_charset', _INSTALL_CHARSET);
194:?>
となっており190をコメントにすると191-193でもエラーになっ...続きを読む

Aベストアンサー

たぶん日本語環境の設定がされていないのが原因です。
php.iniを編集しましょう。
・php_mbstring.dllを有効に。
・mbstringの設定をする
詳細は参考URLを読んでください。

参考URL:http://www.phpbook.jp/install/phpini/index3.html


このカテゴリの人気Q&Aランキング

おすすめ情報