• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Amazost v2.0からエラーが出ます。)

Amazost v2.0からエラーが出ます

このQ&Aのポイント
  • Amazost - My Amazon Store Manager v2.0 日本語化にバージョンアップしてからエラーが出るようになりました。
  • エラー表示は「Fatal error: Call to undefined function: hash_hmac() in 省略/script/aws4class.php on line 257」です。
  • アクセスキーID、シークレットアクセスキー等のミスはないと思います。新しいバージョンをDLしてアップしても同じエラーが出ます。

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

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

それでは、まず、 http://www.nanolink.ca/pub/sha256/ こちらで「Download source code」のところからファイルをダウンロードしてください。 解凍したら、「nanolink-sha256.inc.php」を、Amazostの「script」ディレクトリにアップします。 次に、前回紹介したページの最下部にある、背景が黄色いソースコードが記述されているものを、コピーして、「メモ帳(とかテキストエディタ)」で「hmac-sha256.php」という名前で保存して、また同様にアップロードして下さい。 次に、「hmac.php」という名前で、 下記を保存してください --------hmac.php-------------------- if(!function_exists('hash_hmac')){ function hash_hmac($dummy1, $str, $secret_key, $dummy2){ $sha = new HMAC_SHA256($secret_key); return $sha->hmac($str); } } ------------------------------------ 最後に、Amazostの「index.php」を開き、最初の、「chdir("script");」 と記述されているところのしたに、 require_once 'nanolink-sha256.php'; require_once 'hmac-sha256.php'; require_once 'hmac.php'; を追記してください。 これで恐らく動きます。

bluesea_01
質問者

補足

詳しいご説明ありがとうございます。 説明の通り出来たと思うのですがまたエラーが出てしまいました。 Fatal error: Failed opening required 'nanolink-sha256.php' (include_path='.:/usr/local/lib/php') in 省略/index.php on line 3 見当違いかもしれませんが、 index.phpの「require_once 'nanolink-sha256.php';」を「require_once 'nanolink-sha256.inc.php';」に変更した所エラーの表示が変わりました。 Fatal error: Failed opening required 'sha256.inc.php' (include_path='.:/usr/local/lib/php') in 省略/script/hmac-sha256.php on line 8 何度も申し訳ありません。

その他の回答 (2)

回答No.3

>index.phpの「require_once 'nanolink-sha256.php';」を「require_once 'nanolink-sha256.inc.php';」に変更した所エラーの表示が変わりました。 スミマセン私の記述ミスです。そのようにしていただいてあってます。 >Fatal error: Failed opening required 'sha256.inc.php' (include_path='.:/usr/local/lib/php') in 省略/script/hmac-sha256.php on line 8 これも、スミマセン、 hmac-sha256.php内の8行目の require_once('sha256.inc.php'); となっているところをコメントアウト、 //require_once('sha256.inc.php'); このようにしてください。 これで動くと思います。

bluesea_01
質問者

お礼

有難うございました。無事に動きました。 ただはじめはまだエラーが出てしまっていたので素人なりにいじってみました。 ---エラー内容--- if(!function_exists('hash_hmac')){ function hash_hmac($dummy1, $str, $secret_key, $dummy2){ $sha = new HMAC_SHA256($secret_key); return $sha->hmac($str); } } これがトップページでは常に上部に表示され、商品のページもエラーでした。 ---変更点--- hmac.phpは作らずindex.phpの「chdir("script");」の下を以下の様にしてみた所正常に動作しました。 require_once 'nanolink-sha256.inc.php'; require_once 'hmac-sha256.php'; //require_once 'hmac.php'; if(!function_exists('hash_hmac')){ function hash_hmac($dummy1, $str, $secret_key, $dummy2){ $sha = new HMAC_SHA256($secret_key); return $sha->hmac($str); } } 大変お世話になりました。m(__)m

回答No.1

http://php.benscom.com/manual/ja/function.hash-hmac.php PHP5.1.2以上で標準で搭載された関数のようです。 それ以前のバージョンをご利用であればPECLモジュールをインストールする必要があるようです。 (又はインストール時に明示的に[--disable-hash]としている場合も使用できない) レンタルサーバなど、利用できない場合は、hash_hmacの代替関数が必要になるわけですが、 http://softyasu.blog121.fc2.com/blog-category-7.html こちらに詳しく記載されております。

bluesea_01
質問者

補足

お返事遅くなりました。 書き忘れてましたが、当方PHPの知識がない為詳しく書かれているようでしたが理解できませんでした。 ごめんなさい。 どなたか私でも参考になるサイトまたは説明を頂けるようでしたら宜しくお願いします。 無い様でしたら諦めます。 環境はレンタルサーバを利用している為自分ではインストールが出来ない状態です。 失礼しました。

関連するQ&A