WordPressサーバー移動したら動かなくなった

サーバーを移動したら動かなくなる。
phpのバージョンを上げたら動かなくなる。
エラーが出る、白くなる。何も表示されない。

 

移動先phpのバージョンが7だと、loopろかswitch以外にbreakを使うとエラーがでます。

 

.htaccessに「php_flag display_errors On」と記述するとphpのエラーが表示されます。

そこでこんなメッセージが↓

Fatal error: ‘break’ not in the ‘loop’ or ‘switch’ context in

 

今回、Let’s Encryptとか無料SSLに対応していない高額サーバーから対応している激安サーバーに移動をしたら怒りました。

旧サーバーでのphpMyAdminはバージョン3.2.3…

なんてこった…古すぎて使い方わかんなかった

 

 

 

EC-CUBE3在庫数順(在庫切れ商品後ろ)でエラーの件

EC-CUBE3(EC-CUBE4も同じかもしれませんが)で

・「在庫なし」商品を最後にまとめたいときに在庫数でソートすると良い
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=20257&forum=11

・「在庫なし」商品を表示する、しないボタンを付ける

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=19843&forum=10&post_id=84975#forumpost84975

 

普通でしたらこれで十分大丈夫なのですが、

在庫数のソートを入れるとエラーになる場合
↓のようにすると

src/Eccube/Repository/ProductRepository.php
getQueryBuilderBySearchData() に

$qb -> orderBy(‘pc.stock’, ‘DESC’);

「システムエラーが発生しました。」

が出てしまう場合の対処方法です。

 

原因はMySQLのバージョン

こちらが参考になります

https://codeday.me/jp/qa/20190312/410615.html

上記リンクが切れた時のために内容を話しますと
「MySQL5.7で
$queryBuilder = $this
->createQueryBuilder(‘recipient’)
->leftJoin(‘recipient.message’, ‘message’)
->orderBy(‘message.dateSent’, ‘DESC’);

したときに
「message.dateSentはSELECTのリストに表示されていないです!」
とエラーになるという事です。

MySQL5.5モジュール版でも起こります。

 

解決方法:SELECTにいれる

src/Eccube/Repository/ProductRepository.php
getQueryBuilderBySearchData()の該当箇所で

$qb->addSelect('pc.stock as HIDDEN stock');
$qb->OrderBy('stock', 'DESC');

としてやると上手くいきます。

 

その前にきちんと
$qb->innerJoin(‘p.ProductClasses’, ‘pc’);

されていることも確認してください。

 

 

 

 

 

 

 

 

 

EC-CUBE 商品をページで分けないで1ページにすべて表示する方法

「改ページなんてしないよ!」と思ったので一気に表示させるようにしました。

まだ商品件数が少ないからいいけど、行くは無限スクロールにも対応したいですねぇ…

その際にはこちらをデフォルトに元に戻さなきゃいけないので、備忘録。

まずは1ページで表示しきっちゃう方法

TOPページはシロハチ様様のShiro8NewProductControllerプラグインを使用しているのでまだデフォルトです。
まずカテゴリ部分を修正します。
TOPでプラグインを使用していなかったら、TOPページもすんなりいくかもしれない…

1.デフォルトの表示をいっぱいにする

表示部分の設定でドロップダウンリストで「●●件」の部分の値を変える

 

管理画面→設定→システム情報設定→マスターデータ管理→mtb_product_list_max

全部のデータを空欄にして
ID:500 (商品件数に合わせてすべて表示できそうな値で。1000でもOK)
Name:全て
と設定

一回保存すると、なぜか「16件」が復活してくる。
その欄を空欄にして、再度保存すると上記で設定した内容のみになる。

 

ちなみに修正前の値はこんな感じ。(”件”の文字を”items”に変更していました…)

 

 

2.件数の選択部分を削除する

 

管理画面→コンテンツ管理→ページ管理→Product list→ページ詳細編集

 

<li id=”result_info_box__disp_menu”>

をcssでstyle=”display:none”を追記して非表示にする

<li id=”result_info_box__disp_menu” style=”display:none”>

 

 

これで最初の1ページ目にすべての商品が表示されます。

 

EC-CUBE3 表示順を日付順にする方法

そもそも必要かどうかわかりませんが

「登録した日付順にしたい」

という要望がでましたので備忘録。

 

本来の趣旨

「順番のデフォルト」を変えるということ。
元々は登録ID降順で表示されているのですが、IDを管理画面とかから修正することができないので結局、デフォルトの順番を変えることはできないってことになります。

ここでは「ID降順」ではなく「他の順」で表示させるという修正方法の説明です。

 

話の矛盾した背景

本来なら「登録降順=ID降順」なので何もしなくてもいいはずなんです。
しかし、運用として他のサイトにUPした商品を週1回10件ずつCSVでUPするということをしているので、下のようなことになってしまうのです。

なので、あえて日付降順にすることにします。

 

 

デフォルトの表示順番を修正する方法

/src/Eccube/Repository/ProductRepository.php

の165行目あたりのidソートを直します

■修正前■

} else {
if ($categoryJoin === false) {
$qb
->leftJoin(‘p.ProductCategories’, ‘pct’)
->leftJoin(‘pct.Category’, ‘c’);
}
$qb
->addOrderBy(‘p.id’, ‘DESC’);
}

return $qb;
}

/**
* get query builder.
*
* @param array $searchData
* @return \Doctrine\ORM\QueryBuilder

 

 

■修正後■

} else {
if ($categoryJoin === false) {
$qb
->leftJoin(‘p.ProductCategories’, ‘pct’)
->leftJoin(‘pct.Category’, ‘c’);
}
$qb
->addOrderBy(‘p.create_date’, ‘DESC’);
}

return $qb;
}

/**
* get query builder.
*
* @param array $searchData
* @return \Doctrine\ORM\QueryBuilder

 

ここではcreate_dateで回していますが、
このソースを見ていくと

cc1.rank
p.price02_max

とかもあるので、いろいろな値を入れてカスタマイズすることができそうです。

 

 

「->addOrderBy(」とかって簡単にSQLの追加できるのが、ドクトリンのいいところだよなぁ~(^ー^)

ドクトリン?スマーティー?わからんけど。

EC-CUBE3 「予約」「入荷待ち」に対応させる方法

またしても、プラグインを使わないでゴリゴリ行く系です。
今回はphpを使わないで管理画面からできるので
結構、楽かと思います。

 

ここで対応する動作

  1. 「手作り巾着」を売るとします。
  2. 在庫は5個
  3. 6個目からは「入荷次第発送で予約」にします

仕組み

  1. 【作業①】在庫を105個でUP
  2. 【作業②】在庫が100個になったら「カートに入れる」ボタンを「入荷次第発送で予約」にする

【作業①】商品を追加します

この時、在庫数を105個にします

 

 

【作業②】在庫が100個になったらの動作

「Product.stock_min」が現在の在庫らしいので
100を含んでそれ以下の時は「入荷次第発送で予約」の文字にします。

 

管理画面から内容をいじります。

「コンテンツ管理」→「ページ管理」→「商品詳細ページ」app/template/default/Product/detail.twig
のファイルを修正します。

228行目あたりの「{# カートボタン #}」からちょっと下の(下に記載の赤い部分)を修正します

 

■元データ■

{# カートボタン #}
<div id=”detail_cart_box__button_area” class=”btn_area”>
<ul id=”detail_cart_box__insert_button” class=”row”>
<li class=”col-xs-12 col-sm-8″><button type=”submit” id=”add-cart” class=”btn btn-primary btn-block prevention-btn prevention-mask”>カートに入れる</button></li>
</ul>

 

■修正後データ■

{# カートボタン #}
<div id=”detail_cart_box__button_area” class=”btn_area”>
<ul id=”detail_cart_box__insert_button” class=”row”>

{% if Product.stock_min <= 100 %}
<li class=”col-xs-12 col-sm-8″><button type=”submit” id=”add-cart” class=”btn btn-primary btn-block prevention-btn prevention-mask”>入荷次第発送で予約</button></li>

{% else %}
<li class=”col-xs-12 col-sm-8″><button type=”submit” id=”add-cart” class=”btn btn-primary btn-block prevention-btn prevention-mask”>カートに入れる</button></li>

{%endif %}

</ul>

 

すると、
在庫数が105~101は「カートに入れる」が
在庫数100~1は「入荷次第発送で予約」に代わります。

 

実際の動き

在庫105個~101の時

 

コツコツ購入をしていって在庫が100になったとき

ここでは文字だけが変わっていますが、cssとかをいじって色を変えるとかもいいと思います。

その時はcssで「!important;」を入れないと、なかなか上手く表示されないので注意です。

 

 

 

該当商品のみこの方法にする場合

一番簡単な方法

在庫数の設定を1000とか10000とか、ほかの商品とは格別に違う在庫数にして、処理の分岐をその数量にする方法が手っ取り早いです。

 

ちょっと面倒だけど、あと楽な方法

カテゴリで分割します。
たとえばカテゴリで「ハンドメイド」コーナーを作ります。

一定在庫を切ったら「予約」にする商品は、商品登録のときに「ハンドメイド」のカテゴリも選択するようにします。

上記「■修正後データ■」の部分で赤い文字上記と同じで、青い部分を追加します。

(*******)の部分にはカテゴリIDが7なら
{% if Product.belongsToCategory(7) %}
となります。

 

■コード1■

{% if Product.belongsToCategory(******) %}
{% if Product.stock_min <= 100 %}
<li class=”col-xs-12 col-sm-8″><button type=”submit” id=”add-cart” class=”btn btn-primary btn-block prevention-btn prevention-mask”>入荷次第発送で予約</button></li>
{% else %}
<li class=”col-xs-12 col-sm-8″><button type=”submit” id=”add-cart” class=”btn btn-primary btn-block prevention-btn prevention-mask”>カートに入れる</button></li>
{%endif %}
{% else %}
<li class=”col-xs-12 col-sm-8″><button type=”submit” id=”add-cart” class=”btn btn-primary btn-block prevention-btn prevention-mask”>カートに入れる</button></li>

{%endif %}

 

※カテゴリ番号の調べ方

管理画面の「商品管理」「カテゴリ編集」でカテゴリ名のところにマウスを合わせると、下の方に/category/* という感じで番号がでます。

ここの例だと「ハンドメイド」は「7」となります。

 

面倒だけど、特定の商品だけを予約タイプにする方法

上のカテゴリ分けと同じ感じで、商品を登録する際に使用する商品コードで分岐をいれます。

この方法だと、また同じような予約商品を追加したときに、このプログラム部分も修正しないといけないので面倒ですが、クライアントが「どうしてもカテゴリは嫌!」って言いだしたら対応するしかないでしょう…

(config.ymlに入れるっていう方法もあるけど、それはまた別の知識が必要なので他の時に…)

 

■コード1■の

{% if Product.belongsToCategory(******) %}

の部分を

{% if Product.code_min == ‘****’ %}

に変更します

 

※商品コードではなくIDを使用するときには

{% if Product.id == ‘3’ %}

となります。

 

おまけ:商品IDの調べ方

商品ページを開いて表示されるURLの一番最後の数字です。

この場合は「3」ですね。

 

 

EC-CUBE3 「NoSuchPropertyException~」エラーでツボった

EC-CUBE3で入力フォームに項目を追加して、管理画面から入力フォームにアクセスをしたときにツボったエラーです。
同じ人がいるかもしれないので参考にしてください。

NoSuchPropertyException in PropertyAccessor.php line 486:
Neither the property “

のエラーに関しての話です。

 

 

エラーメッセージ

NoSuchPropertyException in PropertyAccessor.php line 486:
Neither the property “message_cur” nor one of the methods “getMessageCur()”, “messageCur()”, “isMessageCur()”, “hasMessageCur()”, “__get()” exist and have public access in class “Eccube\Entity\Order”.

 

 

エラーの画面

こちらは/index_dev.php/を使用したエラー画面です。
エラー画面の出力の仕方はコチラの

「EC-CUBE3 エラーの場所がわかりにくいので解りやすくデバッグモードにする方法」

を参考にしてください。

 

速攻解決策

「message_cur」という名前のフォームを追加したので、
src/Eccube/Entity/内の関数名も
public function setMessage_cur($message_cur)

public function getMessage_cur()
にしていました。

この関数はそのままにしておいて
同じ内容の関数で_を外した関数を追加したら直りました。

public function setMessagecur($message_cur)

public function getMessagecur()

 

こんな感じです

 

詳細

何をしようとしたのか

注文画面で「message_cur」という項目をつけようとしました。
なので、既存の「message」に関する記述をコピペして、「message」を「message_cur」と変えてソースを追加しました。

その時、関数名も同じようにsetMessage()のコピペをsetMessage_cur()としてしまった感じです。

詳しくはコチラの内容を行った状況です
EC-CUBE3 注文画面に項目を追加する

注文に関する部分なので、該当ソースの場所は
/src/Eccube/Entity/Order.php
です。

 

なぜ2つの関数を用意したのか

【public function setMessage_cur(】
のほうは、お客様が注文をしたときに呼び出されていました。

【public function setMessagecur(】
のほうは管理画面からの操作で呼び出されていました。

細かく王時間もないので、2つの関数を用意して対応という感じです。

 

結局のところ、納期の問題もありSmartyとか勉強する余裕がないので
詳しいことはわかりませんが、
勉強するならフォーラムの中の

mapped オプションとは?

が、とても有効な内容になっている感じですので、参考にしてみて下さい。

 

 

 

 

 

 

 

 

 

 

EC-CUBE3 カスタマイズの困ったところ

EC-CUBE3はまだまだカスタマイズがめんどくさい感じがします。
導入前に検討している場合はご参考に。

でもまぁ、ここまで良質なECモノってないので、
やむを得ない感もありますので、あきらめたり、あるあるな感じで見てください。

EC-CUBE3の嫌なあるあるデメリットポイント

  1. EC-CUBE2と全く互換性がない
  2. カスタマイズ方法を検索して見つけたらEC-CUBE2の物だった
  3. 便利な無料プラグインを見つけたと思ったらEC-CUBE2だった
  4. 同じ機能の3向けプラグインは高い
  5. 公式フォーラムですらEC-CUBE2とEC-CUBE3がしっかり分かれていない
  6. 情報の掲載年が2016以降がEC-CUBE3の情報の可能性が高い
  7. 「\user_data\」の文字があったらEC-CUBE2の情報
  8. SmartyとかtwigとかDoctrineとか分かりにくい
  9. SmartyとかDoctrineとか勉強する時間なんて納期的に無い
  10. SmartyとかtwigとかDoctrineとか勉強したくない
  11. EC-CUBE3カスタマイズで稼ぐくらいの気合がないとソースが分かりにくい
  12. ドキュメントが少ない
  13. オブジェクト指向と行っても、ここまで組まれていたら手が出しにくい
  14. ソースのタブがスペース!
  15. デバッグモードがわかりやすいようでわかりにくい
  16. 過去バージョンが細かく再配布されていないので、自分で持っておかないとヤバイ

 

 

EC-CUBE3のうれしいあるあるメリット

  1. 軽い
  2. ロリポップとかワンクリックで入れられる
  3. 全体で必要な機能が入っているので、細かなカスタマイズを考えなければ超便利
  4. SEOにも強い
  5. スマホ・タブレット・PCで使えるレスポンシブデザイン
  6. SmartyとかtwigとかDoctrineとか慣れると便利
  7. 配列の定義で最後に「,」がついているので追加エラーしにくい
    array(‘a’ , ‘B’ , ‘c’ );
    じゃなくて
    array(‘a’ , ‘B’ , ‘c’ , );
    ってなっているのが、ちょっとうれしい気遣い

 

 

カスタマイズの練習に

スマーティ~とかドクトリンとか…
他の請負がてらにEC-CUBE3の依頼がちょっと入り込んできて
時間もノウハウもなくて即興で勉強するには

EC-CUBE3 住所に項目を追加する方法

EC-CUBE3 注文画面に項目を追加する」←こっちのが短くて簡単

をやってみて下さい。
なんとなく、こんな感じかな~ってのがつかめると思います。

よければC#ですが
ファイルの中の文字を探すツールの作り方
のアプリを作ると、直したい場所を探すことができて便利だとおもいます。

 

 

 

【参考までに私の近況】
EC-CUBE3はぜんぜんわからないで、BtoB社内ツール専門のアラフィフ&ほぼ退役PGです。
片手間にEC-CUBE3の仕事が入りこんできたので悪戦苦闘しています。

納期も短いし、スポットなので初歩からSmartyとか勉強できませんので
体当たりでゴリゴリと改造しています。

 

 

EC-CUBE3 注文画面に項目を追加する

「支払方法」とか「メッセージ」を入力する「注文画面」に項目を追加します。
例えば「包装あり・なし」とか「カタログ希望」とかに使えます。
今回は「通貨」を入れ込んでみたサンプル例です。

いつも通りにプラグインタイプではなく、ソースをいじる感じで行きます。

※管理画面でのオーダー情報の変更は、今回使用していないのでデバッグしていません。

 

ゴリゴリの注文項目の追加の仕方

EC-CUBE3注文項目追加の仕組み

EC-CUBE3 住所に項目を追加する方法」と同じような考えで
注文フォームの「message」部分をコピペして「message_cur」という名前の項目を追加してみます。

ただ、「message」っていう名前が変数として、いろいろな所で使用されているので検索ツールを使っても場所が分かりにくいのが難点です。

 

ざっくりとした手順

  1. データベースにaddr03を追加
  2. プログラムの修正
  3. レイアウトの修正

 

1.データベースにmessage_curを追加します

●MYSQLを開いて実行します

ALTER TABLE `dtb_order` ADD `message_cur` LONGTEXT NULL ;

 

 

2.プログラムの修正

●次のソースの中の「message」を検索して、その部分をコピペして「message_cur」にしたものを貼り付けていきます。
「message」という変数のところもあったりするので、こればっかりは勘とか雰囲気で対応してみて下さい。
追記で注意事項:「message_cur」というような「_」のついた名前は良くないらしい。

 

\src\Eccube\Service\ShoppingService.php
\src\Eccube\Resource\doctrine\Eccube.Entity.Order.dcm.yml
\src\Eccube\Form\Type\ShoppingType.php
\src\Eccube\Entity\Order.php

※↑Order.phpについてはコチラを参考にして関数名に気を付けてください。
EC-CUBE3 「NoSuchPropertyException~」エラーでツボった

 

 

2-追記:フォームのスタイルをテキストとかセレクトにする

入力タイプを変えることができます。

\src\Eccube\Form\Type\ShoppingType.php

の場所で次のように設定します。

 

【テキストエリアタイプの場合】 <textarea>タグを使用

->add(‘message_cur’, ‘textarea’, array(
‘required’ => false,
‘data’ => $message,
‘constraints’ => array(
new Assert\Length(array(‘min’ => 0, ‘max’ => 3000))),
))

 

【リストの場合】 <select>タグを使用

->add(‘message_cur’, ‘choice’, array(
‘choices’ => array(‘Please select a currency’=>’Please select a currency’,’JPY’=>’JPY’,’USD’=>’USD’,’EUR’=>’EUR’,’OTHERS’=>’OTHERS’)
))

 

【オプションボタンの場合】<option>タグ

奥が深そうなので諦めました…
リストのスタイルでごまかすとか…(>_<)

 

 

 

3.レイアウトを修正します

管理画面からでも良いですし、ソースをいじっても良いのでtwigファイルのレイアウトを修正します。

※「src\Eccube\Resource\template」は「app」に入っていることがあるので、そちらを優先します。

\src\Eccube\Resource\template\default\Mail\order.twig
\app\template\default\Shopping\index.twig
\app\template\default\Mypage\history.twig

 

 

↓お問い合わせ(Inquiry field)の上に「Currency」の名前で追加するとこんな感じになります

\app\template\default\Shopping/index.twig

<h2 class=”heading02″>Currency</h2>
{{ form_widget(form.message_cur) }}
{{ form_errors(form.message_cur) }}
<h2 class=”heading02″>お問い合わせ欄</h2>

 

4.キャッシュを削除します

何がどうつながっているのかわからないので、全部にチェックを入れてキャッシュを削除します。

 

 

まず、お客様周りの動作が完成

とりあえずここまでで購入に関する部分は完成します。

  1. お客様の購入の際に新項目の操作が可能に
  2. 注文メールに新項目の表示(自動配信、管理者宛メール)
  3. お客様がログインして自分で注文履歴を見る際に新項目が表示

問題になるのが、次の管理画面での新項目の操作です。

実際に管理画面で「支払い方法」などを管理者が修正をすると、手数料等の変更は手計算でするようになったりするので、ここで細かな修正はしないで、運営の方で「ショップ用メモ欄」などに記載しての対応が望まれます。

 

 

ソースのダウンロード

今回修正をかけたtwig以外のファイルをUPしましたので参考にしてみて下さい。

「message_cur」と「messagevur」の部分が追加したところです。

ひょっとしたらそのほかの部分も更新しているので、これをUPするとサイトが確実に壊れると思いますので参考で使用してください。

サンプルのダウンロードsrc

 

 

管理画面の方で修正ができるようにする方法

実際、使用しないで運営でカバーするのでここまでは作りこみませんでした。
おそらく新項目をテキストエリアタイプで作るとすんなりいくかもしれませんが、私のほうではSelectタイプで作ったので表示がめんどくさそうです。

ちょっと感じた部分で、直さないといけなそうなソースはこのあたりかと感じます

 

\src\Eccube\Form\Type\Admin\OrderType.php
\src\Eccube\Resource\template\admin\Order\edit.twig

 

ここを直すと、管理画面で入力をすることができるようになります。
(エラーが出るならこちらも参考に「EC-CUBE3 「NoSuchPropertyException~」エラーでツボった」)

しかし、なぜか「Select」で入れて炒るのにテキストエリアになります。
気にしなくてもいいならこれでもいいかも。

実際には手入力の方が汎用性があるので、これはこれで…良しとして
クライアントが突っ込んできたら
(^^)「変更をした履歴や詳細が入力できるようにテキストエリアにしています」
といってごまかす…

もしくは表示させない。

 

 

 

 

EC-CUBE3 メールが長いので短くしたい

注文確認メールと管理人に届くメール。

これを
「印刷したときに2枚になるので、1枚に収まるくらいコンパクトにして欲しい」

という要望がありましたので修正です。

 

特に通販だと7年くらい注文受付の紙を保持しておいた方が良いという話なので
おそらく他の会社でも必要だと思いますので備忘録。

 

メールを短くする方法

注文メールはお客様に届くものと管理人に届くものが同じなので
「様」とかをはしょらないように注意が必要です。

1.メールテンプレートを修正します

\src\Eccube\Resource\template\default\Mail\order.twig

例によって\app\の方に入っている場合もありますので、
\app\に同名のファイルがあったら、そっちの修正を優先してください。

 

【例1】

FAXを()閉じにしてTELの横にしたり

 

【例2】

************************************************
 ご注文商品明細
************************************************

******ご注文商品明細******

にしたり

 

【例3】

時間指定値引き送料無料だったらその項目も切っちゃいます。

 

【例4】

下の方の

{% for ShipmentItem in Shipping.ShipmentItems %}
商品コード: {{ ShipmentItem.product_code }}
商品名: {{ ShipmentItem.product_name }} {{ ShipmentItem.classcategory_name1 }} {{ ShipmentItem.classcategory_name2 }}
数量:{{ ShipmentItem.quantity|number_format }}

{% endfor %}

の部分は上の金額が出ているヤツとかぶっているからいらなさそうです。

 

2.キャッシュの削除

例によって「管理画面」で「コンテンツ管理」「キャッシュ管理」で全部を削除します。

(なぜかtwigだけだとうまくいかなかったので…)

 

3.フッターなども短く

「管理画面」で「設定」「基本情報設定」「メール設定」でヘッダーやフッターの文章を短くします

 

 

 

4.検証

注文をしてみて、メールを受信して、印刷をするのは紙がもったいないから「印刷プレビュー」とか「XPS」や「PDF」にプリントアウトして確認

 

EC-CUBE3 エラーの場所がわかりにくいので解りやすくデバッグモードにする方法

EC-CUBE3をいじっていて落ちるエラー。

何が悪いのかわかりにくくて不便だと思いますが、実はエラーはわかりやすいのです。

そのエラー特定方法です。

 

1.EC-CUBE3のデバッグモードをオンにする

サイトの中の一番上のフォルダの中に「index_dev.php」というファイルがあります。

コレの39行目あたりの、この部分をコメントアウトします。

※本来なら「$allow」に自分のIPを追加するのが一番良いのですが、レンタルサーバーなどでは、それで動かない場合があるので、ざっくりデバッグPCの判別をストップさせます。

if (isset($_SERVER[‘HTTP_CLIENT_IP’])
|| isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])
|| !in_array(@$_SERVER[‘REMOTE_ADDR’], $allow)
) {
header(‘HTTP/1.0 403 Forbidden’);
exit(‘You are not allowed to access this file. Check ‘.basename(__FILE__).’ for more information.’);
}

 

 

2.デバッグモードで動かします

サイトのURLに「index_dev.php/」を入れて、TOPページからエラーが出るまでの一連の動きを行います。

例「http://monomono.sub.jp/」→「http://monomono.sub.jp/index_dev.php/」

ページの下の方にデバッグモードのツールが出ます。

 

 

3.エラーのところまで動かします

エラーが出るとメッセージが出てきます。
なんのことかよくわかりにくいので  マークの横の赤い部分を押します。

 

 

優しい色使いでわかりやすいエラーの情報が出てきますので、指摘箇所を修正します。

 

 

 

 

4.最後に一番大事なこと

デバッグが終わったり、また後日…などで作業を終わらせる際には、

1で修正した「index_dev.php」のコメントアウトを元に戻してUPします。

とても大事なので

絶対に忘れないでください。