バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
miyawaki
投稿日時: 2019/4/28 3:19
対応状況: −−−
新米
登録日: 2019/4/28
居住地:
投稿: 5
TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
▼テンプレート
[EC-CUBE]4.0.1
[レンタルサーバ]さくらインターネット
[OS]Windows10 HOME
[PHP]Version 7.2.17
[データベース]MySQL 5.7
[WEBサーバ]FreeBSD 11.2-RELEASE-p8 amd64
[ブラウザ]73.0.3683.103(Official Build) (64 ビット)
[導入プラグインの有無]カテゴリページ/コンテンツ追加 for EC-CUBE4
[カスタマイズの有無]無し
[現象]TOPページにカートに入れるボタンの設置を試みています。
product_idやproductClass等は固定の値ですが_tokenの値が動的な為、入れられずにおります。

過去に『MYページの購入履歴詳細ページで商品個々にカートボタンを付けたい』というトピック
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=18753&forum=10
があり非常に興味深く拝見させていただいたのですが、
フォームデータを作成してテンプレートに渡すといった作業が
実際にどのファイルをどのように編集するか等が不明で、
よろしければご教授いただけますと幸いで御座います。
umebius
投稿日時: 2019/4/28 13:11
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
商品詳細ページの下記コードが参考になるかと思います。

        $builder = $this->formFactory->createNamedBuilder(
            '',
            AddCartType::class,
            null,
            [
                'product' => $Product,
                'id_add_product_id' => false,
            ]
        );


ProductController::detailで
AddCartTypeのフォームをTwigに渡しています。

トップページでも同じことをしてやって、twigで{{ form_widget(form._token) }}すればトークンが入ります。
トップのどこの位置かにもよりますが、TopControllerかブロックであれば該当するコントローラーですね。

-------

AddCartTypeのトークンチェックを無効にするという手もあります
(csrf_protectionをfalse)


----------------
EC-CUBE3系4系 カスタマイズ ECのプロがシステム特急案件承ります。
公式インテグレートパートナー (株)U-Mebius

miyawaki
投稿日時: 2019/4/28 22:16
対応状況: −−−
新米
登録日: 2019/4/28
居住地:
投稿: 5
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
umebius 様

解決方法についてご返信いただき、誠にありがとうございます。

AddCartTypeのトークンチェックを無効にする方法で対応したく思いますが、
AddCartTypeの中にcsrf_protectionまたはそれらしい記述が見当たりませんでした。
新たに特定の場所に記述すればよいでしょうか。

細かい質問でたいへんに恐縮ですが、
何卒よろしくお願い申し上げます。
umebius
投稿日時: 2019/4/29 7:03
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
miyawaki様

AddCartTypeのconfigureOptionsメソッドにおいて
オプションに 'csrf_protection' => false,を追加すれば設定可能です。
miyawaki
投稿日時: 2019/4/29 20:26
対応状況: 解決済
新米
登録日: 2019/4/28
居住地:
投稿: 5
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
umebius様

本件、ご指定いただいた個所への適応により、
_tokenのinputを指定せずにカートに商品を加える事ができました。

ご丁寧にご教授くださり、誠にありがとうございます。
今後も使用していく予定のプラットフォームですので、
より詳しくなれるよう自らでも勉強して参ります。

このたびは、誠にありがとうございました。
umebius
投稿日時: 2019/4/29 20:36
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
紹介しておいてなんですが、基本的には'csrf_protection' をfalseにはしない方がいいと思います。
Controllerからちゃんとフォームを渡してトークンを出力した方がいいですね。
AddCartTypeはカートインだけですのでともかく、他のフォームで同じことをすると直接被害を出すような脆弱性になってしまうこともありますので。
ぜひフォームをコントローラから渡す方法も試されてみてください。
miyawaki
投稿日時: 2019/5/7 17:19
対応状況: −−−
新米
登録日: 2019/4/28
居住地:
投稿: 5
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
umebius様

虚弱性につきまして、承知いたしました。

フォームを渡すという方法は私にとってかなり敷居が高いようですが、
調査をして設定できるよう試してみたいと思います。

詳細にご教授いただきまして、誠にありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


ec-cube.co

統計情報

総メンバー数は44,766名です
総投稿数は91,591件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1889
4
468
1743
5
yuh
1584
6
umebius
1296
7
red
1275
8
fukap
907
9
tsuji
837
10
shutta
827
11 ramrun 789
12
tao_s
742
13
h_tanaka
720
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.