• ベストアンサー

文字数制限?

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

  • PHP
  • 回答数5
  • ありがとう数0

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

  • ベストアンサー
回答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

  • 入力制限文字数に関するタグについて

    入力制限文字数に関するタグについて 1) <TEXTAREA>タグを利用した場合の入力文字制限数を指定できるステップを教えてください。 同時に、制限数を超えた場合は、「入力文字が***文字を超えています」等のメッセージも出したいのですが・・・ 2) 1)以外のタグで同じ効果を得られるものをご存知でしたら、合わせてお教えください。

  • 送信できる文字数に制限はあるのですか

    お世話になります。  <form action="submit.asp" method="GET"> 上記のような記述でデーターを転送するのですが送信された内容が途中で 切れます。 method では送信できる文字数に制限が有るのでしょか ? 動作環境 Win2000 Server + IIS 5.0 + SQL 2000 Server + ASP5.0 を 使用しています。

  • 文字数について

    プログラム初心者です mysqlのカラム、varchar(255)に実験で270文字HTMLフォームからmysqlに入れてみました そうしたら、255文字しか保存されていませんでした もしかしたら、PHPで文字数制限しなくてもmysql側のカラムの文字数設定だけでいいのではないかと思ってしまいましたがこれだと不具合とかでてきますか? データ型のtextも文字数指定できるのでしょうか? やっぱり、文字数制限はPHPなどでやったほうがいいのでしょうか? よろしくお願いします

    • ベストアンサー
    • MySQL
  • 文字数の制限の確認

    エクセルで C列に商品名が入ってます。以前から文字数を気にせず商品名を決めていたのですが、販売ソフトの導入で文字数の制限を掛けることになりました。文字数は全角18文字以内です。半角もつかえます。現状は名称に半角・全角が混じっています。文字数制限内か否かを関数で調査し、全角18文字より長い場合は「ながいですよ」ってD列に記入したいのです。教えてください。

  • フォームの文字数制限を解除したい

    kent webさんのフォームメールを使っているのですが、文字数制限があり、メッセージを沢山入力すると、「メッセージの入力内容が大きすぎます」というエラーがでてしまいます。300文字程度は入力できるようにしたいと思います。textarea に関する何を改造すればうまくいくでしょうか?皆さんよろしくお願いします。

    • ベストアンサー
    • CGI
  • メールの1行の文字数制限について

    フォームから入力された文字をメールで送信する仕組みをPHPで作成しているのですが、1000文字を超える文章を改行せずに入力して、mb_send_mail関数でメールを送信したところ、1000文字以降が文字化けしてしまいました。(メールサーバはsendmailを使用) メールに関する1行の文字数制限はRFCにて規定されているようなのですが、これを回避する方法はないでしょうか?

    • ベストアンサー
    • PHP
  • 文字数の制限について

    TextBoxの文字数の制限が上手くいかなくて困っています。 ◆問題点1 最大入力文字数を、半角は50文字、全角は25文字と設定したいです。 下記の質問を参考にし、キーボード入力の制限をかけることが出来ました。 質問:テキストボックスへの文字の入力について http://oshiete1.goo.ne.jp/kotaeru.php3?q=287224 しかし、最大文字数が入力されているときに「貼り付け」を行うと 設定以上の文字数が入力されてしまいます。 入力文字数+貼り付け文字数が、最大入力文字数よりも長ければ、 コピーを禁止したいのですが、何か良い方法はございますか? ◆問題点2 MaxLengthに設定した最大文字数よりも1文字分長く、入力できてしまいます。 MaxLength = 4 と設定したTextBox(仮に「Text1」とします)に半角文字を4文字分入力します。 (このとき、ぴったし4文字分キーボードを押下します。) 次に半角文字2文字分をコピーし、Text1のなかの1文字をドラックして貼り付けます。 (ドラックする文字は最後尾以外です。) 上記手順を行うと、Text1には5文字分入力されてしまいます。 どのような処理を行えば、"4文字まで"と必ず制限できますか? 問題点1、2のどちらか一つでも構いませんので、対処法を教えていただけますか? 宜しくお願いいたします。 なお、環境は Microsoft Windows 2000 Microsoft Visual Basic 6.0 です。

  • 画像処理での文字の処理について

    formのtextareaから文字を受け取り、その文字を画像に書き込むプログラムを作成しています。 処理手順は、 1.[a.php]にあるtextareaに文字を入力   <textarea name="intxt" rows="10" cols="30"></textarea> (FORMのmethodはPOST)    2.submitで値を送信し、[b.php]で処理   [a.php]:print "<img border='0' src='b.php?imgfile=$imgfile&txt=$txt'>";      [b.php]:$imgfile=$_GET['imgfile'];/*画像*/        $txt=$_GET['txt'];    /*入力文字*/        文字を画像に書き込むときに、  aaa  bbb という風に画像に書き込みたいのですが、処理をすると  aaabbb  となります。 そこで私が考えた方法は、改行コードで文字列を切り取り、【 $text=explode("\n",$txt); 】 for文で書き込むという方法でしているのですが、うまく文字列を切り取れません。 改行コードが間違っているのでしょうか? それとも、改行コードでは切り取れないのでしょうか? 検索をかけてみたり、他の質問を見てみたのですが、うまく出来ませんでした。 それと、日本語で文字列を渡すためにはどのような関数を使えばよいのでしょうか? マルチバイト文字列はrawurlencode()を噛まさねば渡すことが出来ないというのはわかったのですが、 どういう風に噛ませるのかわかりません。 いろいろと試したのですが、表示されませんでした。 他にも方法があるのでしょうか? 開発環境は、PHP5.2.5、Apache2.2、WindowsXPです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームの<TEXTAREA>で文字数制限する方法はありますか?

    こんにちは。フォームの<TEXTAREA>で入力文字数を制限をする方法を知りたいのですが、解る方がいらっしゃいましたら教えてください。 MAXLENGTHなどは使用できないようでしたので、Javascriptでの制限方法などがあるのかなと思い書き込みさせていただきました。具体的には全角150文字前後に制限したいと思っております。(※前後全角10文字くらいは誤差があってもかまいません。) サーバーサイドではなくクライアントサイドで動く仕様のものが良いので、こちらに書き込みさせていただきました。よろしくお願い致します。

  • 文字数制限について

    文字数制限について教えてください。 下記のようにPHPで設定しているのですが、 全部数字を入れた場合、日本語よりもかなりオーバーしてしまいます。 バイト数が違うからだと思いますが、 日本語と同じ幅で表示する方法はありますか? $val['aaa'] = mb_strimwidth($val['aaa'], 0, 84, "...", 'UTF-8'); 現在 あああ 111 ↓ 希望 あああ 111111 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう