エラーの発生(バグ?)

Q:表示される画面が真っ白になります

A:真っ白なページが表示されたり、ページの一部が表示されないなどの場合、多くの原因が考えられます。

1、まずファイルが全てサーバーにアップロードされているかどうかをご確認ください。
FTPのタイムアウトやネットワークの問題などで、ファイルが一部アップされていなかったり、0byte のファイルになっていたり・・・というケースがあります。
再度全てのファイルをアップロードし直し、エラー無しで正常終了した事をご確認ください。

※ ご相談いただく問題の多くが単なるファイルのアップロードミスです。

2、ファイルのどこかで "syntax error" を起こしているかもしれません。

エラー内容はサーバーのエラーログにも残りますので、サーバーの管理画面などからエラーログを確認できるようであれば、そこから問題点を探す事ができるでしょう。
それが難しいようであれば、一旦メンテナンス中にしてから、PHP のエラーを画面に表示させるよう設定してください。
画面に表示されるエラーが問題解決のヒントになるでしょう。

エラー内容を表示させるようにするための設定

/includes/application_top.php の52行目のコメントアウトを外してください。

//define('STRICT_ERROR_REPORTING', true);

define('STRICT_ERROR_REPORTING', true);

のようにすれば、真っ白だった画面に今度はエラーが表示されるようになると思いますので、そのエラー内容を見て対処してください。
※サーバーによってはエラーが表示されないかもしれません。

これまでお問い合わせのあった事例としては、 metatags.php ファイルを変更した際に、シングルコーテーションの閉じタグを削除してしまっていたり、文字コードを Shift-JIS などのUTF-8 以外で保存してしまったケースが多くみられます。


Q:The SQL cache directory does not exist..

A:ZenCart?は高速化を図るためにSQLのクエリのキャッシュを使用します。そのためにクエリをキャッシュしておくためのディレクトリが必要になります。

初期設定では/tmpに設定されています。(configure.phpを設定することで変更出来ます)このディレクトリは書き込み可能な状態で存在しなければいけませんが、もしそれがうまくいっていないと上記のようなエラーメッセージが出ます。プログラムは動作しますが、SQLのクエリはキャッシュされません。

もしクエリのキャッシュ機能を利用することを希望せず。エラーメッセージを消したい場合はincludes/application_top.phpのファイルにおいて設定することが出来ます。

ファイルの終わり近くで以下のような記述があります。

    define('WARN_SQL_CACHE_DIRECTORY_NOT_WRITEABLE', 'true');

これを以下のように書き換えて下さい。

    define('WARN_SQL_CACHE_DIRECTORY_NOT_WRITEABLE', 'false');

 

Q:Warning Headers already sent...

A:このエラーメッセージはphpのファイルの最初や最後に半角スペース、または余計な空白行が存在すること等により引き起こされます。エラーが表示されたファイルをチェックして、?>の後についている空白を削除するなどの対処を行ってください。

Warning: Cannot modify header information - headers already sent by
(output started at /....includes/ディレクトリ名・・・/問題となるファイル.php:12) in ..../includes/別のファイル名.php on line 67

のように、問題が発生している場所を示す情報が一緒に出力されているはずですので、問題のファイルを開いてください。 最後の数字は(上記の例では :12)修正が必要な行番号です。
上記エラーの後半にでてくる別のファイル情報は無視してかまいません。

上記のエラー以外にも他のエラーが一緒に表示されており、このエラーが下にある場合にはもう一つのエラーの方を先に修正してください。そちら側の問題の影響でこのエラーが出ているだけかもしれませんので、その場合にはメインのエラーを修正することで、このエラー表示は一緒に解決される事になります。

◆ポイントのまとめ

a)  'started at' で指摘されているファイルを開く
b) 指定された行数に記述されている内容を確認
c) ありがちな間違いが無いかチェックする。
 --- 指定された場所がファイルの最下部である場合、空欄(スペース)が入っている可能性があります。
 --- 指定された場所がファイルの最上部である場合、空欄(スペース)が入っている可能性があります。
 --- そうでない場合には、 "echo()" で表示させようとした情報、もしくはデバッグ用に記述した内容などによる問題か "syntax error" です。
--- ありがちな "syntax errors" のパタンとしては、シングルコーテーションでくくられた記述の中にシングルコーテーションが使われている場合があります。 コーテーションがきちんと利用されているかを確認してください。 シングルコーテーションを利用したいのであれば、' のようにエスケープしてください。
d)  エラー内容の 'started at' 部分以外は無視してください。
 
Q:Parse error: unexpected T_STRING  (…のようなエラー)

A:もし、以下のような感じのエラーが表示されているとすると・・・

"Parse error: parse error, unexpected T_STRING in /var/www/myaccount/public_html/includes/languages/japanese/SOMETHING.php on line 28"

大抵の場合は、記述されている言語ファイルの定義の中にある  ' マーク(シングルクォートやアポストロフィ)を ¥ でエスケープしていない場合に発生します。

例えば:

define('TEXT_SOMETHING','This is something simple that's used as an example');

のように、 that's のアポストロフィを ¥' のように処理する必要があります。
こうした記述ミスがないか確認して修正してください。

 

Q: Connection to Database failed ... Access denied for user: 'username@localhost' (Using password: YES) ・・・ というエラーになってインストールできません!

A:入力情報が間違っているか、ユーザーに権限がありません。

詳細は、こちらの記事を参照ください>>

 

Q:  1142 DROP command denied to user: 'username@localhost' ... DROP TABLE IF EXISTS ・・・というエラーになってインストールできません。

A: このユーザーにデータベースに対する必要な権限があるかどうかを確認してください。

詳細は、こちらの記事を参照ください>>

 


Q:ページの中に、TEXT_MAIN  のような訳の分からない大文字の英文字が表示されます。

まずはじめに:
TEXT_MAINENTRY_STATE_TEXT  あるいは、SOMETHING_LOOKING_LIKE_THIS のような大文字の英単語を連結した文字列は、PHP で“定数”と呼ばれているものです。
この“定数”には代入されるべき文字列を別途 "define" で定義してやる必要があります。
これは、Zen Cart Pro ( Zencart )が、多言語対応するために取っている手法です。

例えば日本語の言語ファイルを確認すると、以下のような形の言語定義フォームがあるのにお気づきでしょう。

define('TEXT_MAIN', 'この言葉を表示');

このように定義する事で、「TEXT_MAIN」 の部分には「この言葉が表示」という文字列がページ上に表示されるようになります。

さて、テンプレートファイルやシステム上のどこかのファイルに、TEXT_MAIN ... の内容をページに表示するためのリクエストが記述されているはずです。( 大抵は、PHP の "echo" で記述されています )
それなのに、この TEXT_MAIN 定数に対応する内容がどこにも定義されていない場合や、定義を記述しているファイルが構文エラーを起こして読み込む事が出来ない場合などに、定義された文字列を表示する事ができず、代わりに“定数”がそのまま表示される事になってしまいます。

正しく定義が行われるべき場所を捜し出して、修正を行う必要があります。

考えられる主な発生原因:
ケース1:
こうした事が発生するケースの一番の原因は、ある文字列を表示させたくないと思って言語ファイルを修正する時に、表示されている文字列の部分だけを削除すべきところを、定義すべてを削除してしまったというケースです。

例えば、対応する日本語文字列を消したい場合は…

define('TEXT_MAIN', '');

のように日本語の定義部分の文字列を空にするのが正しい形です。
その行をすべて消してはいけません!

ケース2:
その他のケースとしては、定義を記述しているファイルにおいて、読み込めなくなった定義よりも上にある定義で、コーテーションマークの処理が間違っていたり、行の最後の ; が抜けているといった構文エラーが発生している場合もあります。

ケース3:
また、単なる言語ファイルのアップロード忘れ、も原因として考えられます。

※まずは、問題が発生する前にどのファイルを編集したか、何か追加モジュールなどをインストールしなかったかを考えて、元々の Zen Cart Pro (あるいは Zen Cart)のソースファイルと比べてみるところから始めてください。
 

Q:「郵便番号データ管理」で「初期データの取得」を行おうとしたら、画面が真っ白になってしまいました。

A:FTPソフトを使って アドミン用のディレクトリ内にある /postal ディレクトリの中を確認してください。
圧縮ファイルが一つだけ(もしくは「初期データ取得」リンクをクリックした数だけ)入っているでしょうか。
その場合、データ取得後に圧縮ファイルを解凍してDBにインストールできなかったものと思われます。
サーバー管理者様に、解凍ソフトがサーバーにインストールされているかどうかをご確認していただき、入っていないようであればインストールをご依頼ください。

※注意: 再度「初期データ取得」をお試しになる前に、必ず /postal ディレクトリ内の圧縮ファイルをすべて空にしておいてください。
ファイルが残っていると、そのファイルの処理がスキップされるため、その部分の郵便番号データがDBに反映されなくなります。

 

Q: Zen Cart Pro が表示されません! 管理画面も入れません! 
「0 DB_ERROR_NOT_CONNECTED」とだけ表示されます。どうなってしまったのでしょう?

A:「0 DB_ERROR_NOT_CONNECTED」のエラーは、MySQLデータベースに接続できない場合に表示されるエラーメッセージです。
ファイルの変更などをしていないにも関わらず、このメッセージが急に表示される場合は、何らかの原因でサーバーの負荷(MySQLへの負荷)が高くなり接続できない状態になってしまったのかもしれません。

ただ、あわててサーバー業者に連絡する前に、本当に設定が間違っていないか再確認しましょう。
Zen Cart Pro からデータベースに接続するにあたって、/includes/configure.phpファイル定義されている接続情報を利用します。
この設定内容でデータベースにアクセスしても反応がない場合には、「0 DB_ERROR_NOT_CONNECTED」エラーが表示されます。

 

以下の内容をチェックしてみてください。
1. configure.phpファイルに記述されている情報は正しいか。
2. configure.phpファイルで指定されたデータベース名は正しいか。
3. configure.phpファイルで指定されたユーザ名は正しく、configure.phpファイルで指定されたデータベースへのアクセス権限を持っているか。
これらが間違っていないようであれば・・・
4. サーバーのホスティング業者がデータベースでメインテナンスなどをしていないかを確認してください。
5. 「ウェブサイトがMySQLデータベースに接続できない」状況をホスティング会社に伝えて対応を依頼します。
6. 合わせてホスティング業者にデータベースの「修理」オプションがあるかどうかを確認してください。

 

Q: きちんとしたSSL証明書を持っているのに、「セキュリティ情報-このページにはセキュリティで保護されている項目と保護されていない項目があります…」という警告が出てしまいます。

A:これは、ご利用のテンプレート内に相対パスではなく、  http://xxxxxxxxx   のような形で直接リンクを書きこんでしまっている場合に発生します。

もしくは、バナーの設定で、 http:// で始まるリンクを使ったバナーを登録しており、「SSLページでのバナー表示」を無効にしてスキップさせていないのかもしれません。
あるいは、クリック追跡ツールなどを Javascript でサイト内に設置しており、それがどこかの http:// ページにリンクしているのかもしれません。

ほとんどの“容疑者”は、ブラウザで「ソースを表示」させて、src="http:// を検索すれば、見つけ出すことができるでしょう。

容疑者が見つかったら、テンプレートファイル内のそれらの直書きリンクを削除してください。もしそれらのリンク先がSSLで表示可能であれば、https:// に書き直すことで警告表示は発生しなくなります。

もし、クリック追跡ツールのスクリプトが問題の原因である場合、リンクを https:// に書き直すか、別のスクリプトを準備してもらうようツールの提供者にご相談ください。

基本的に言って、テンプレート内だけではなくどんなページにおいても、http:// のURLを直書きすべきではないでしょう。
特に <IMG SRC=...> や <SCRIPT SRC=...> などのタグを利用する場合には注意してください。

 

:注文管理画面の「価格(税込)」に税込価格が表示されません!

A:管理画面から以下の設定をご確認ください。
「一般設定」>「ショップ全般の設定」 より、真ん中辺りに、「価格を税込みで表示 - 管理画面」の項目があります。
おそらくこちらが false になっているものと思われます。 True に変更して表示をご確認ください。

 

Q: サイト内の商品ページでも管理ページでも、日付の部分が「8月%d日」のように文字化けしています。

A:Windows環境でご利用でしょうか?
以下の修正をお試しください。

/includes/languages/japanese.php内の
define('DATE_FORMAT_LONG', '%Y年%m月%d日(%a)'); // this is used for strftime()

define('DATE_FORMAT_LONG', '%Y年%m月 %d日(%a)'); // this is used for strftime()

に書き換えてみてください

※%d日の前に半角スペースを入れただけです。 
 

Q: 「カテゴリ・商品 CSV入出力」で、ダウンロードしたデータがどれも空っぽです。

A:ダウンロード自体はできるが、0バイトの空ファイルになってしまうという事ですね。

FTPでサーバーに接続し、ZenCartProインストールディレクトリにある /chache ディレクトリに対して書き込み権限を与えてください。 ( 777など )

Q: CSV出力で、文字化けが発生します。

A:管理画面用のプログラムのどこかに誤った文字コードのファイルが存在している可能性があります。

管理画面の表示言語を「mobile」などに変更してお試しください。
もし、現象が発生しないようであれば、日本語用の言語ファイルに問題があります。
これまでに発生したパタンでは、includes/languages/japanese/meta_tags.php を間違った文字コードで上書きしているケースなどがありました。
※ ファイルの変更時には、 UFT-8 ではなく UTF-8N で保存するようにご注意ください。


Q: 商品リストページにおいて、価格での並べ替えが正しく動いていません。

A: 管理画面の「一般設定・ツール」>「ショップ管理ツール」ページにある、「全商品の価格ソートを更新」を実行なさってください。

ZenCartPro では、セールや特価など様々な価格設定が存在しているため、価格による並べ替えを効率よく動作させるための価格による並べ替えのための専用のDBフィールドを持っています。
価格によるソート(並べかえ)を正しく動作させるには、特価やセールなど価格に関連した変更を行った際には、上記メニューの更新を行うようにしてください。
 

Q: 投稿されたレビューを管理画面から有効にしたのにショップ側に表示されません。

A: レビューを投稿された際の言語を御確認下さい。

ZenCartPro では、「日本語PC」「英語PC」「日本語携帯」の3つの言語を利用しております。
そのため、PC画面から行われたレビュー投稿と携帯画面から行われたレビュー投稿はそれぞれ別に管理されます。
そのレビュー投稿が携帯からの場合である場合、PC画面には表示されません。


Q: ショッピングカートに表示される「送料計算」に郵便番号を入れても動きません。

A: このフィールドは、外部の送料計算APIとの接続が利用できる"UPS"や"USPS"を利用している場合にのみ動作します。 同APIとの連動を行っていない場合には郵便番号をいれても送料計算は行われません。

混乱防止のため、郵便番号フィールドを非表示にしたい場合には、以下の情報をご参照ください。

=>「ショッピングカートページの、送料計算で表示される「郵便番号」の入力項目を非表示にしたい。」

 

Q: 携帯端末でアクセスすると 「このページはエラーにより表示できません(500)という画面になってしまいます。

A: 携帯用のサイドボックス表示において、「RSSフィード サイドボックス(sideboxes/rss_sidebox.php)」を "OFF" に設定してください。

こちらのサイドボックスは携帯には対応しておりません。AUではエラーとして500が返されてしまい、このサイドボックスが表示されるページは、全く表示されなくなるという現象が発生することがあります。
(Softbank や Docomo 端末では、画面は表示されますが、エラーが発生しているサイドボックス部分より下が表示されなくなります。 )
 

Q: 携帯端末でアクセスすると フッタや、下の方のボックスが表示されない事があります。

A: 携帯用のサイドボックス表示において、「RSSフィード サイドボックス(sideboxes/rss_sidebox.php)」を "OFF" に設定してみてください。

こちらのサイドボックスの内容は携帯には対応していないため、エラーになってしまいます。その結果 「RSSフィード」 サイドボックスから下の情報が表示されなくなります。


Q:管理画面での商品登録で、プレビューに進むと以下の様なエラーが出ます。
Warning: mkdir() [function.mkdir]: Unable to access /var/www/myaccount/public_html/images/temporary_images/dir/ in ・・・・・

A:アップロードした画像ファイルをリサイズして保存しようとした際、権限が無くてエラーになっているようです。
PHPがsafmode になっているのかもしれません。
詳しくは、ホスティング業者様にお問合せください。
 

Q:登録されているはずの商品画像が表示されません。

A:画像がうまくアップロードされていないのかもしれません。 /images ディレクトリとそれ以下のディレクトリに対して書き込み権限が与えられているかどうかをご確認ください。 またFTPで直接ファイルの存在とファイル名をご確認ください。
いうまでもなく、ファイル名に日本語などのマルチバイト文字列は利用できません。

また、新規に登録した画像ではなく、デモ商品として登録されている画像も表示されない場合には、"500 Internal Server Error " が発生しているのかもしれません。

非常にまれなケースではありますが、/images ディレクトリに設置されている .htaccess ファイルを正しく処理できないために発生しているエラーである可能性があります。

まずは、FTPでアクセスして .htaccess をリネームするか、バックアップしてサーバー上から削除してみてください。

これで、画像が表示されるようになれば、ご利用のサーバーではデフォルトで設置している .htaccess が正しく処理できないという事になります。
画像が参照できるようになった事で安心しないでください。 画像フォルダを含め、様々なフォルダに対してセキュリティを考慮しての .htaccess が設置されていますが、それらが機能していないという意味でもあります。

一度サーバー業者様にご相談いただいた方が良いでしょう。

 

Q:画像のポップアップが動きません

A:ポップアップ画面がすでの表示されているウィンドウの後ろに表示されているのかもしれません。
あるいは・・・ FireFoxをお使いであり、Firebugが有効の場合にそうした現象が確認されています。

Firebugを無効にしてから FireFox を再起動してお試しください。