質問 > フロント機能 > QRコードの生成がうまくいきません |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
syuwa |
投稿日時: 2014/10/18 20:03
対応状況: 開発中
|
半人前 登録日: 2014/9/7 居住地: 投稿: 22 |
QRコードの生成がうまくいきません 何度目かの質問になってしまいます。申し訳ありません。
現在PEARのImage_QRCode-0.1.1を使用し、商品詳細ページへQRコードの生成を行うため開発を行っています。 ドキュメントルート直下へqr.phpを作成し、 <?php require_once("./data/module/Image/Image/QRCode.php"); require_once("./require.php"); $option = array( "module_size"=>3, "image_type"=>"jpeg", //画像形式jpeg,pngを指定 "output_type"=>"display", //出力方法を指定する display return returnの場合はmakecodeで画像リソースが返される "error_correct"=>"H" ); $qr = new Image_QRCode(); $qr->makeCode(htmlspecialchars($_GET['qrcode'] ,ENT_QUOTES),$option); ?> LC_Page_Products_Detail.php へ $this->url="http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; Detail.tpl EC-CUBE2.13.2 携帯やスマートフォンで商品を見るばあい、QRコードを読み込んでください。<br> <img src="<!--{$smarty.const.ROOT_URLPATH|cat:"qr.php?qrcode=$url"}-->"/> PEARパッケージをmodule/Image/Imageへ置き、Exception.phpへのパスも通しました。 実際にページを表示すると 画像の枠のみが表示され、実際にQRコードが生成されていません。 画像のURLをとってみると http://○○/qr.php?qrcode=http://○○/products/detail.php?product_id=2 と表示され、qrcodeへurlの受け渡しはできているように思えます。 makeCode も実際に実行されていることを確認できています。 エラーログを覗いてみると Warning(E_WARNING): Invalid argument supplied for foreach() on [/var/www/html/eccube-yoshida.com/html/data/module/Net/URL.php(178)] from 60.36.179.68 customer_id = /var/www/html/eccube-yoshida.com/html/qr.php(3): require_once /var/www/html/eccube-yoshida.com/html/require.php(38): require_once /var/www/html/eccube-yoshida.com/html/data/require_base.php(31): require_once /var/www/html/eccube-yoshida.com/html/data/app_initial.php(50): SC_Initial->init /var/www/html/eccube-yoshida.com/html/data/class/SC_Initial.php(60): SC_Initial->normalizeHostname /var/www/html/eccube-yoshida.com/html/data/class/SC_Initial.php(523): Net_URL->__construct /var/www/html/eccube-yoshida.com/html/data/module/Net/URL.php(129): Net_URL->initialize /var/www/html/eccube-yoshida.com/html/data/module/Net/URL.php(178): SC_Helper_HandleError::handle_warning というエラーが表示されますが、URL.phpは初期から変更しておらず、他のphpでもrequire_onceよりrequire.phpを呼び出している例もあります。 QRコードの生成についてはこのPEARを使用してとのことでしたので、他のパッケージは今の所使用できません。 要領を得ていない内容になってしまいましたが、原因を探ろうにもまだ経験が足りずどうアプローチしてよいのか正直わからず頭を悩ませています。 もし、原因や解決法、原因を探るためのアプローチ方法についてでも構いません。どうかご指摘よろしくおねがいいたします。 |
yuh |
投稿日時: 2014/10/20 0:46
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: QRコードの生成がうまくいきません require_once("./require.php");
って必要ですか? |
syuwa |
投稿日時: 2014/10/20 15:21
対応状況: −−−
|
半人前 登録日: 2014/9/7 居住地: 投稿: 22 |
Re: QRコードの生成がうまくいきません お返事ありがとうございます。
現在はPCへQRコードの表示を行わせるためにコードをかいていますが、後に携帯端末へのQRコード表示を考えているため記述しています。 実際にこのrequire_onceの記述を削除してみましたが、エラーはきえたもののQRコードは表示されていませんでした。 |
red |
投稿日時: 2014/10/20 15:27
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: QRコードの生成がうまくいきません 昔試したことなので、今のバージョンで動くかわかりませんが
http://nob-log.info/2011/02/21/ec-cube%E3%81%AE%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%82%B5%E3%82%A4%E3%83%88%E3%81%ABqr%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%9F%8B%E3%82%81%E8%BE%BC%E3%82%82%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6/
|
syuwa |
投稿日時: 2014/10/21 2:37
対応状況: −−−
|
半人前 登録日: 2014/9/7 居住地: 投稿: 22 |
Re: QRコードの生成がうまくいきません お返事ありがとうございます。
以前このサイトを拝見したことがあり、その通りにディレクトリを配置したことがありましたが解決には至りませんでした。 携帯端末への対応以外の部分は記述は同じだと思われます。 やはりバージョンがうまく対応していないためでしょうか。 |
sumida |
投稿日時: 2014/10/21 9:28
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: QRコードの生成がうまくいきません 横から失礼します。
http://○○/qr.php?qrcode=http://%A1%FB%A1%FB/products/detail.php?product_id=2 この記述の「qrcode=」以降が、そもそも構文として正しく扱われていないのではないでしょうか。 テンプレートで、 「qrcode=」の「http.....=2」の前後に「'」などのデリミタを付加し、 qr.phpでは、 $_GET['qrcode']で取得した文字列から前後に付加したデリミタを削除した後、 makeCodeに渡せば良いのではないでしょうか。 |
red |
投稿日時: 2014/10/21 15:41
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: QRコードの生成がうまくいきません 設置の方法があってるとすればまずは
<img src="<!--{$smarty.const.ROOT_URLPATH|cat:"qr.php?qrcode=hogehoge"}-->"/> こちらでQRコードが表示されるか確認しましょう これがでなければ、設置が間違っています 表示されたらこちらを試してみてください <img src="<!--{$smarty.const.ROOT_URLPATH|cat:"qr.php?qrcode="}--><!--{$url|urlencode}-->"/>
|
syuwa |
投稿日時: 2014/10/21 23:02
対応状況: 解決済
|
半人前 登録日: 2014/9/7 居住地: 投稿: 22 |
Re: QRコードの生成がうまくいきません お返事ありがとうございます。
一度適当な内容でQRコードの表示を行いたかったのですが、tplファイルへの記述方法が分からず苦戦していたため助かりました。 img src ... hogehoge を表示してみるとうまくいかなかったため やはりパスに問題があると判断しました。 そしてもう一度パスについて注目していると、 QRCode.phpの image data ディレクトリへのパスが誤っていることに気がつきました。 $this->image_path = dirname(__FILE__) . "../image"; ↓ $this->image_path = dirname(__FILE__) . "/../image"; (dirname(__FILE__)の使い方を見ても/がどうしても必要にはみえなかったのですが。。) へと変更したところ無事パスが通り、うまくいきました。 返事を下さった皆々様、本当にありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |