質問 > その他 > 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などを書き込んで確認されてみてはいかがでしょうか?
|
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行目付近の記述を書き換えてみて操作してみてください。
↓
これで画面に何か表示されたら、isValidでfalseになっている(入力チェックエラー)と思います。 エラーが表示されますので、その内容を確認して、対応という事になるかと思います。
|
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セッションデータへの書き込みが上手くいっていないのではないでしょうか? この辺りはサーバの設定となってきますので、レンタルサーバのサポートへの確認になってくるのではないかと思いますが...
|
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セッションに格納されている値が画面に表示されるのではないかと思います。 試しに私が同じ画面で出力してみた値は以下の通りです。
_csrf/install_step1がtokenの値になるかと思います。 表示されたSTEP1のinputタグにも同じ値が出力されていました。
|
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) |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |