6

次の行を持つスクリプトに POST でリクエストを送信しようとすると、次のようになります。

$decrypted_data = openssl_decrypt($encrypted_data, 'AES-256-CBC', $key);

次のエラーが表示されます。

致命的なエラー: 11 行目の mypath/usuario_webservice.php の未定義関数 openssl_decrypt() の呼び出し

いくつかの調査の後、一般的な理由は、関数に間違った名前を入力したか、openssl 拡張機能が Web サーバーにインストールされていないことです。サポートに確認したところ、インストールされていることがわかりました。それで、他に何を探すべきですか?

4

3 に答える 3

15

一部の方の参考になるかもしれないので投稿します。

  • でチェックextension=php_openssl.dllが有効になっていますphp.ini
  • チェックextension_dirは で正しくポイントされていphp.iniます。

libeay32.dllApache ではなく php のバージョンを最近アップグレードした場合は、openssl の要件である正しく読み取られてssleay32.dllいないか、バージョンの不一致が発生している可能性があります。

  • の最新バージョンを取得libeay32.dllするssleay32.dllか、php ディレクトリからコピーしてC:\php、Apache\bin の sayC:\Apache24\binディレクトリ内のファイルを上書きします。

これが役立つことを願っています。

于 2016-07-30T17:20:42.110 に答える
3

セミコロンを削除して、 php.iniファイルでこの拡張機能を有効にします。

extension=php_openssl.dll

Apacheサーバーを再起動して再
試行してください

于 2015-01-14T19:02:13.250 に答える