電子書籍の厳選無料作品が豊富!

phpで、文字列をPostgresに保存に保存するという、
単純な、日記登録サイトを自作しています。

ところが、最近textareaへの文字数が多い場合、
submitからの保存を受け付けてもらえない事に気付きました。
ボタンを押しても無反応。文字を削ると、保存可能。
要は文字数制限の様です。

しかし、同じ文字数でもPostgresのコンソールから直接叩くと、保存できます。

送信する文字列、<textarea>、に文字数の制限があるのでしょうか?
であれば、何文字でしょう。

また、他に制限文字数を気にしないでもいいくらいの設定値などありませんでしょうか?

A 回答 (5件)

#2です。



POSTとGETの違いですが、
POSTは標準出力で、GETはURLの引数で渡します。

CGIなどで、データを取得する場合は
POSTの場合、STDIN(標準出力)の内容をCONTENT_LENGTH(サイズ)分
取得します。
GETの場合は、環境変数QUERY_STRINGに入っている文字列を取得します。

制限値ですが、サーバーのOS依存となっている為
正確にはわかりません。
が、GETは256byte~4kbyteと言われているようです。
POSTに関しては設定で決める事ができるようです。
ただ、この設定というのはサーバーに負荷をかけない為に
決めるもので、理論上POSTには制限が無いといっても
問題無さそうです。
これもサーバーの設定依存なので正確にはわかりませんが
1Mbyteのデータを送っても大丈夫だったという方も
おられるようです。

#日記などの場合はPOSTにするのが普通でしょうね。
    • good
    • 0

#2です。



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

#多分間違ってるので・・・・・

この回答への補足

GETをPOSTにそのまま差し替えても、
送信データをうまく受け取れないようなんですが、

GETとPOSTでは、
フォームの設計に決定的な違いがあるのでしょうか?

補足日時:2005/10/11 21:19
    • good
    • 0

#1です。



よく考えたらapacheのpost制限が500Kでしたっけ。

php.iniの方で制限するので、httpd.conf内で
以下のように無制限にしておくとよいでしょう。

<Files *.php>
LimitRequestBody 0
</Files>
    • good
    • 0

<TEXTAREA>には、日記程度で渡せなくなるような


文字数での制限は無いと思います。
#制限自体はあると思いますが・・・

もしかしてですが、<FORM>のmethodをGET又は
未設定にされていませんか?

この回答への補足

GETかPOSTかで何か違いが出るのでしょうか?

また、正確な制限値はご存知ではないですか?

補足日時:2005/10/04 13:08
    • good
    • 0

多いというのどのくらいかにもよりますが


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!