- 締切済み
soapclient
お世話になります。 php5で、soap関数を使って、amazonの検索サービスを使ったサイトを作ろうとしています。 コードは以下です。 <html> <body> <form method="POST" action="<?= $_SERVER['PHP_SELF']?>"> キーワード: <input type="text" name="keywd" size="30" maxlength="255" value="<?php print($_POST['keywd']);?>"/> <input type="submit" value="検索"/> </form> <?php include ("nusoap/lib/nusoap.php"); if ($_POST['keywd'] != "") { $keywd = mb_convert_encoding(htmlspecialchars($_POST['keywd']),"SJIS","auto"); $objSoap = new SoapClient("http://soap.amazon.co.jp/schemas3/AmazonWebServices.wsdl"); $param = array('keywd' => $keywd, 'mode' => 'books-jp', 'locale' => 'jp', 'sort' => '+saleserank', 'type' => 'lite', 'page' => 1, 'tag' => 'XXXXXXXX', 'devtag' => 'XXXXXXXXXXXXXX'); $result = $objSoap -> KeywordSearchRequest($param); mb_convert_virables("SJIS","auto",$result); echo ($result -> TotalResults."件がヒットしました。"); echo ("<table border='1'>"); echo ("<th>No.</th><th>書名</th><th>著者</th><th>出版社</th>"); echo ("<th>価格</th><th>刊行日</th>"); foreach ($result -> Details as $item) { ?> <tr> <td><?= ++$i ?></td> <td><a href="<?= ($item -> Url)?>"><?= ($item -> ProductName) ?></a></td> <td><?= implode(",",$item -> Authors) ?></td> <td><?= $item -> Manufacturer ?></td> <td><?= $item -> ListPrice ?></td> </tr> <?php } } ?> </table> </body> </html> 実行すると、HTTP 500 - 内部サーバー エラー となってしまい、 PHPソースのエラーすら出てこない状態です。 soapclientのところでエラーとなっているようなのですが、 どこをどう直せばいいのか検討がつきません。 どなたか分かる方、アドバイスお願いします。 ちなみに、php.iniのextensions=php_soap.dllのコメントははずしてあります。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
Windowsで500エラーが出るんですか? 珍しい気がします。 ini_set("error_log", "./error_log"); ini_set("display_errors", 0); error_reporting(E_ALL); include_once("nusoap/lib/nusoap.php"); こんな風にすると、error_logに問題の内容が書かれたりしませんか?
補足
アドバイスありがとうございます。 error_logに以下のエラーが吐き出されました。 (1)PHP Warning: SoapClient::SoapClient() [<a href='function.SoapClient-SoapClient'>function.SoapClient-SoapClient</a>]: php_network_getaddresses: getaddrinfo failed: そのようなホストは不明です。 (2)PHP Warning: SoapClient::SoapClient(http://soap.amazon.co.jp/schemas3/AmazonWebServices.wsdl) [<a href='function.SoapClient-SoapClient'>function.SoapClient-SoapClient</a>]: failed to open stream: No such file or directory in C:\Program Files\... (3) PHP Warning: SoapClient::SoapClient() [<a href='function.SoapClient-SoapClient'>function.SoapClient-SoapClient</a>]: I/O warning : failed to load external entity "http://soap.amazon.co.jp/schemas3/AmazonWebServices.wsdl" その他もエラーが出ているのですが、すべてこのコードのところです。 $objSoap = new SoapClient("http://soap.amazon.co.jp/schemas3/AmazonWebServices.wsdl"); (1)はプロキシの設定かとも思ったのですが、プロキシの設定はこのコードの後ですよね? エラーの内容を見ても、何が悪いのかよくわかりませんでした。 もしお分かりになるようでしたら、またアドバイスを宜しくお願いします。