質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

754閲覧

Postの件数が多すぎる

Takumiqqq

総合スコア4

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/02/08 12:36

編集2022/02/09 01:39

下記HTMLをサーバー側に投げたところ、foreachのループ回数に依存してPOST件数が多くなり、サーバー側で403エラーになりました。
恐らくサーバー側の設定変更することで事象は解決するのですが、セキュリティ上やりたくありません。
ソースで解消できれば良いと考えています。

ソースは下記で、ループ回数分サーバー側にデータを投げているので、件数が多いと問題になっています。

<form method="POST" id="bracketupdate" action="{{ route('{サーバー側の処理}')}}" enctype="multipart/form-data"> @csrf <?php foreach ($CustomerList as $key => $Customer) { ?> <input type="hidden" name="url_param" id="bracketmember_url_param" value="{{ $url_param }}" /> <input type="hidden" name="member[{{ $Customer->customer_id }}][customer_id]" id="{{ $Customer->customer_id }}flag_bracket" value="{{ $Customer->customer_id }}" /> <input type="hidden" name="member[{{ $Customer->customer_id }}][flagA]" id="{{ $Customer->customer_id }}flag_bracket" value="{{ $Customer->flagA }}" /> (flagB,flagC・・・と続く。) ・ ・ ・ <?php } ?> </form>

JSON形式で一括で送れればいいなと考えていましたがうまくいきませんでした。
サーバー側へ投げるデータの形式はなるべく変更しない方向でできるのが理想です。

どうかアドバイスいただけますと幸いです。

受け取り側

if (request()->has('member')) { foreach (request()->input('member') as $member) { $flagA = $member["flagA"]; if (!$flagA) { return redirect()->route('リダイレクト先'); } $customer = $this->CustomerService->get($member["customer_id"]);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2022/02/08 12:43

「データの件数を減らす」という選択肢はありますか?
m.ts10806

2022/02/08 23:10

コードブロック内に説明文章が入ってるので、外に出してもらえればと。 それに、どういう形でPOSTしてるかとか、データ構成とかそのあたりも記載したほうが良いと思います。 Laravelなら質問タグに追加や質問本文に環境情報の追加が必要かもしれません。
Takumiqqq

2022/02/09 00:39

「データの件数を減らす」という選択肢はありますか? →こちらの選択しはないです。 コードブロック内に説明文章が入ってるので、外に出してもらえればと。 それに、どういう形でPOSTしてるかとか、データ構成とかそのあたりも記載したほうが良いと思います。 Laravelなら質問タグに追加や質問本文に環境情報の追加が必要かもしれません。 →ありがとうございます。修正します。 →どういう形でPOSTしているかはinputタグで確認できると考えています。
Lhankor_Mhy

2022/02/09 00:54

『下記HTMLをサーバー側に投げた』とのことですが、HTMLをサーバに投げるとはどのような状況ですか? 「下記HTML」に相当するような文字列データをサーバにPOSTした、という意味ですか?
maisumakun

2022/02/09 01:09 編集

えっと、「サーバー側へ投げるデータの形式はなるべく変更しない」かつ「データの件数を減らす選択肢はない」となれば、「送信するデータの内容は現状から何も変えられない」ということになりますが、それでいいのですか? そして、さらに「サーバー側の設定変更をやりたくない」となれば、改善できる点はなにもない、となってしまいます。
maisumakun

2022/02/09 01:11

受信側のコードを提示していただけないでしょうか。 POSTされたデータを処理するのは「受信側」のコードなので、同じ形のデータを送るしかない状況が続くのであれば、送信側にいくら手を入れても何も変わりません。
Takumiqqq

2022/02/09 01:19

Lhankor_Mhyさん →文字列データをサーバー側にPOSTしたという意味になります。 maisumakunさん →送信するデータの内容は変えず、送信方法を改善したいと思っています。  具体的には現状、form内にinputタグが多く、一度にPOSTできる上限数に引っ掛かっているので受信ができない状態です。(https://www.php-factory.net/trivia/14.php)
maisumakun

2022/02/09 01:21

「サーバー側へ投げるデータの形式はなるべく変更しない」という条件は無視して構わない、ということでしょうか?
Takumiqqq

2022/02/09 01:24

maisumakunさん 無視しても問題ありません。可能であれば形式は変えないで。という思いで書かせていただきました。
maisumakun

2022/02/09 01:32

形式を変えるとなれば、受け取る側のコードにも手を入れる必要があります。そちらは提示していただけませんか?
Takumiqqq

2022/02/09 01:39

maisumakunさん 追記させていただきました。
Lhankor_Mhy

2022/02/09 01:42

> 文字列データをサーバー側にPOSTしたという意味になります HTML文字列を送信したということですね? それであれば送信部分のコードをご提示ください。
Lhankor_Mhy

2022/02/09 01:49

あー、わかりました。 「下記HTMLをサーバー側に投げた」ではなくて 「下記HTMLでサーバー側に投げた」ということですかね。 それで、POSTのbodyが大きすぎてサイズ制限に引っかかっているけど、設定を変えたくないので、コードで対応したいということですか。
Takumiqqq

2022/02/09 01:53

Lhankor_Mhyさん ご認識通りです。
Lhankor_Mhy

2022/02/09 01:57

あ、bodyのサイズの問題じゃないのですね。 それでしたら、yambejpさんのご回答と同意見です。
guest

回答3

0

全部一気に投げるのではなくJavaScript側で分割送信してセッションで持っておいて追記していくとかですかね。
本当に全て必要か、何かしらでまとめられないかを検討する方が先とは思いますが、
リクエスト数だけでなく、リクエスト容量も気にしたほうが良いと思います。

投稿2022/02/09 01:47

m.ts10806

総合スコア80888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

件数が多いっていうのが、
「一定時間内のリクエスト件数が」って意味だとしたら、
送信する方の処理にしっかり待ち時間を入れてでも継続してリクエストを送信したらいいんじゃないですかね、
時間はかかりますけれど。

投稿2022/02/09 00:38

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

全部のパラメータをjsonにまとめて送るとかでしょうか

投稿2022/02/08 12:48

yambejp

総合スコア117728

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Takumiqqq

2022/02/18 10:44

JSONでまとめる方法で検討し実装しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問