アプリ版:「スタンプのみでお礼する」機能のリリースについて

以前のバージョンでは正常に動作していましたが、
Amazost - My Amazon Store Manager v2.0 日本語化
にバージョンアップしてからエラーが出るようになりました。
エラー表示は以下の通りです。
Fatal error: Call to undefined function: hash_hmac() in 省略/script/aws4class.php on line 257

アクセスキーID、シークレットアクセスキー等のミスはないと思います。
新しいバージョンをDLしてアップしても同じエラーが出ます。
エラーのでる理由、対応策など分かる方居れば宜しくお願いします。

A 回答 (3件)

それでは、まず、


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';

を追記してください。
これで恐らく動きます。

この回答への補足

詳しいご説明ありがとうございます。
説明の通り出来たと思うのですがまたエラーが出てしまいました。
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

何度も申し訳ありません。

補足日時:2009/09/10 01:50
    • good
    • 0

>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');
このようにしてください。

これで動くと思います。
    • good
    • 0
この回答へのお礼

有難うございました。無事に動きました。
ただはじめはまだエラーが出てしまっていたので素人なりにいじってみました。

---エラー内容---
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

お礼日時:2009/09/11 01:08

http://php.benscom.com/manual/ja/function.hash-h …
PHP5.1.2以上で標準で搭載された関数のようです。
それ以前のバージョンをご利用であればPECLモジュールをインストールする必要があるようです。
(又はインストール時に明示的に[--disable-hash]としている場合も使用できない)

レンタルサーバなど、利用できない場合は、hash_hmacの代替関数が必要になるわけですが、
http://softyasu.blog121.fc2.com/blog-category-7. …
こちらに詳しく記載されております。

この回答への補足

お返事遅くなりました。
書き忘れてましたが、当方PHPの知識がない為詳しく書かれているようでしたが理解できませんでした。
ごめんなさい。
どなたか私でも参考になるサイトまたは説明を頂けるようでしたら宜しくお願いします。
無い様でしたら諦めます。

環境はレンタルサーバを利用している為自分ではインストールが出来ない状態です。
失礼しました。

補足日時:2009/09/09 04:54
    • good
    • 0

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