• ベストアンサー

文字数制限?

phpで、文字列をPostgresに保存に保存するという、 単純な、日記登録サイトを自作しています。 ところが、最近textareaへの文字数が多い場合、 submitからの保存を受け付けてもらえない事に気付きました。 ボタンを押しても無反応。文字を削ると、保存可能。 要は文字数制限の様です。 しかし、同じ文字数でもPostgresのコンソールから直接叩くと、保存できます。 送信する文字列、<textarea>、に文字数の制限があるのでしょうか? であれば、何文字でしょう。 また、他に制限文字数を気にしないでもいいくらいの設定値などありませんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

#2です。 POSTとGETの違いですが、 POSTは標準出力で、GETはURLの引数で渡します。 CGIなどで、データを取得する場合は POSTの場合、STDIN(標準出力)の内容をCONTENT_LENGTH(サイズ)分 取得します。 GETの場合は、環境変数QUERY_STRINGに入っている文字列を取得します。 制限値ですが、サーバーのOS依存となっている為 正確にはわかりません。 が、GETは256byte~4kbyteと言われているようです。 POSTに関しては設定で決める事ができるようです。 ただ、この設定というのはサーバーに負荷をかけない為に 決めるもので、理論上POSTには制限が無いといっても 問題無さそうです。 これもサーバーの設定依存なので正確にはわかりませんが 1Mbyteのデータを送っても大丈夫だったという方も おられるようです。 #日記などの場合はPOSTにするのが普通でしょうね。

その他の回答 (4)

回答No.5

#2です。 すいません。 「理論上POSTには制限が無いといっても  問題無さそうです。」 の部分を言わなかった事にしてください(^^;;; #多分間違ってるので・・・・・

CANALVOR
質問者

補足

GETをPOSTにそのまま差し替えても、 送信データをうまく受け取れないようなんですが、 GETとPOSTでは、 フォームの設計に決定的な違いがあるのでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

#1です。 よく考えたらapacheのpost制限が500Kでしたっけ。 php.iniの方で制限するので、httpd.conf内で 以下のように無制限にしておくとよいでしょう。 <Files *.php> LimitRequestBody 0 </Files>

回答No.2

<TEXTAREA>には、日記程度で渡せなくなるような 文字数での制限は無いと思います。 #制限自体はあると思いますが・・・ もしかしてですが、<FORM>のmethodをGET又は 未設定にされていませんか?

CANALVOR
質問者

補足

GETかPOSTかで何か違いが出るのでしょうか? また、正確な制限値はご存知ではないですか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

多いというのどのくらいかにもよりますが バイト数でどのくらいですか? 何メガ単位となると、php.iniのpost_max_size にひっかかることもあります。

関連するQ&A

専門家に質問してみよう