バージョン選択

フォーラム

メニュー

オンライン状況

57 人のユーザが現在オンラインです。 (52 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 57
もっと...

サイト内検索

質問 > その他 > EC-CUBE3をインストールできない

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tak245ga
投稿日時: 2019/7/8 14:14
対応状況: −−−
半人前
登録日: 2019/7/3
居住地:
投稿: 24
Re: EC-CUBE3をインストールできない
返答ありがとうございます。

確認してみましたが、リロードしても同じ値でした。
一旦ページを閉じて再度アクセスしても同じ値でした。
「送信を承諾」にチェックを入れて送信をクリックしてみましたが、
こちらも変化はありませんでした。

468
投稿日時: 2019/7/8 21:18
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: EC-CUBE3をインストールできない
という事はセッションは問題なさそうですね。
コントローラークラスの該当の箇所(STEP1〜2へ遷移)で
どのように処理が流れているか、ソースにechoなどを書き込んで確認されてみてはいかがでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

tak245ga
投稿日時: 2019/7/9 9:13
対応状況: −−−
半人前
登録日: 2019/7/3
居住地:
投稿: 24
Re: EC-CUBE3をインストールできない
返答ありがとうございます。

自分で何か出来ないかと考えて、同じサーバ内の別ドメインにインストールを試みてみました。

しかし、結果は一緒でやはりstep1から先に進みません。

すみません。phpはほとんど知識が無くどのようにしたらよいのかが全く分からないです。
どのような作業を行ったらよいのでしょうか?
468
投稿日時: 2019/7/9 9:39
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: EC-CUBE3をインストールできない
とりあえず該当の箇所が問題なのか確認する為に
/src/Eccube/Controller/Install/InstallController.php 75行目付近の記述を書き換えてみて操作してみてください。

if ($form->isValid()) {
    $sessionData = $session->get(self::SESSION_KEY) ?: array();
    $formData = array_replace_recursive($sessionData, $form->getData());
    $session->set(self::SESSION_KEY, $formData);

    return true;
}




if ($form->isValid()) {
    $sessionData = $session->get(self::SESSION_KEY) ?: array();
    $formData = array_replace_recursive($sessionData, $form->getData());
    $session->set(self::SESSION_KEY, $formData);

    return true;
} else {
    dump($form->getErrors(true));
}

これで画面に何か表示されたら、isValidでfalseになっている(入力チェックエラー)と思います。
エラーが表示されますので、その内容を確認して、対応という事になるかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

tak245ga
投稿日時: 2019/7/9 10:45
対応状況: −−−
半人前
登録日: 2019/7/3
居住地:
投稿: 24
Re: EC-CUBE3をインストールできない
返答ありがとうございます。

以下のような表示が出ました。
FormErrorIterator {#378 ▼
-form: Form {#295 ▶}
-errors: array:1 [▶]
}

三角を押して広げると結構な行になったので、errorの方だけ広げてみました。

-errors: array:1 [▼
0 => FormError {#380 ▼
-message: "The CSRF token is invalid. Please try to resubmit the form."
#messageTemplate: "The CSRF token is invalid. Please try to resubmit the form."
#messageParameters: []
#messagePluralization: null
-cause: null
-origin: Form {#295}


「The CSRF token~」を検索してみました。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=17750&forum=2
これを見つけたのですが、インストールがまだなのか「app/config/eccube」は空でした。

こちらで大体の原因は判明しそうでしょうか?
468
投稿日時: 2019/7/9 12:16
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: EC-CUBE3をインストールできない
STEP1→STEP2への操作の際、POSTデータに_tokenは含まれていますか?

あと、ECCUBEとは関係の無い事例ですが、
以下のページに
「The CSRF token is invalid. Please try to resubmit the form.」が表示された時にPHPセッションデータの管理者を変更すれば解消されたという事が書かれています。
https://qiita.com/mknstone/items/d7736186aa317f46cbd7

パーミッションの関係等で、PHPセッションデータへの書き込みが上手くいっていないのではないでしょうか?
この辺りはサーバの設定となってきますので、レンタルサーバのサポートへの確認になってくるのではないかと思いますが...


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

tak245ga
投稿日時: 2019/7/10 10:57
対応状況: −−−
半人前
登録日: 2019/7/3
居住地:
投稿: 24
Re: EC-CUBE3をインストールできない
返答ありがとうございます。

>STEP1→STEP2への操作の際、POSTデータに_tokenは含まれていますか?

フォームの内容ですよね?
<form name="form1" id="form1" method="post" action="/html/install.php/step1">
<input type="hidden" id="install_step1__token" name="install_step1[_token]" value="BCWwhiJttNllPrl7UePtri0xi9S1qQkjPVAymeGtMBo" />

このようになっています。
ちなみに、このvalueとcookieにある値が違うのは関係ないですよね?
468
投稿日時: 2019/7/10 11:54
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: EC-CUBE3をインストールできない
tokenは正常に出力されているようですね。
こちらの値はcookieの値とは異なっていて問題ありません。

CSRF対策の仕組みですが
画面を表示する際、valueの値を
PHPセッション内と、htmlのinputタグの2箇所に保存するような動きをしていると思います。

表示された画面でそのままformを送信すると、
inputタグに出力した値が_tokenとしてサーバに送信される形となり、
サーバ上でPHPセッションに格納した値と比較して一致すればOK、一致しなければNGという処理をしていると思います。
この仕組みによって、送信されてきたデータの送信元formが
サーバより正規に出力されたformという事が確認できるという仕組みになっております。
(100%安全という訳ではありませんが...)

今回は上記の処理でPHPセッションに値が正常に格納されておらず
送信されたPOSTデータと値が一致していないのではないでしょうか?

先日の投稿でdump()の記述を追記していただきましたが、
その下にでもdump($_SESSION);と追記するとPHPセッションに格納されている値が画面に表示されるのではないかと思います。
試しに私が同じ画面で出力してみた値は以下の通りです。
array:3 [▼
  "_sf2_attributes" => & array:2 [▼
    "_csrf/install_step1" => "FU6iAzreDgHcquoaSnSX3hpgADS5sLN6wXy-trYlZGY"
    "eccube.session.install" => array:1 [▶]
  ]
  "_sf2_flashes" => & []
  "_sf2_meta" => & array:3 [▶]
]

_csrf/install_step1がtokenの値になるかと思います。
表示されたSTEP1のinputタグにも同じ値が出力されていました。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

tak245ga
投稿日時: 2019/7/10 14:59
対応状況: −−−
半人前
登録日: 2019/7/3
居住地:
投稿: 24
Re: EC-CUBE3をインストールできない
返答ありがとうございます。

少し違いますね…

書き方は、
if ($form->isValid()) {
$sessionData = $session->get(self::SESSION_KEY) ?: array();
$formData = array_replace_recursive($sessionData, $form->getData());
$session->set(self::SESSION_KEY, $formData);

return true;
} else {
dump($form->getErrors(true));
dump($_SESSION);
}
ですよね?

黒枠が1つ増えてそちらは以下の通りです。

array:3 [▼
"_sf2_attributes" => & []
"_sf2_flashes" => & []
"_sf2_meta" => & array:3 [▼
"u" => 1562737880
"c" => 1562737880
"l" => "0"
]
]

_sf2_attributesの内容部分(と言えばいいんですかね?)が無いですね…
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,307名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.