プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

ini_setの「post_max_size」がなぜか正常に動作しません。「upload_max_filesize」はうまく動作するのですが・・・。

---------------------------------------------
$aaa = ini_set("upload_max_filesize","2M");
$bbb = ini_get("upload_max_filesize");
$ccc = ini_set("post_max_size","3M");
$ddd = ini_get("post_max_size");
---------------------------------------------

↑これを実行すると以下のように表示されます。

---------------------------------------------
aaa=16M
bbb=2M
ccc=
ddd=8M
---------------------------------------------

本来「ccc=8M」、「ddd=3MB」となるはずなのですが..。$cccを単体で実行してもうまくいきません。
上記から分かりますように、実行環境のphp.iniの設定は、

memory_limit = 64M
post_max_size = 8M
upload_max_filesize = 16M

となっています。マニュアルには

「memory_limit >= post_max_size >= upload_max_filesizeでなければならない」

とありますので、実際は「upload_max_filesize」を「post_max_size」の8M以下に設定し直さなければならないとは思うのですが、これがini_setがうまくいかない原因になり得るでしょうか?

何かご存知の方がいらっしゃいましたら教えて下さい。PHPのバージョンは4.2.2です。

A 回答 (1件)

えーと、回答にはならないかも知れませんが、とりあえずわかっている事だけを。


post_max_sizeやupload_max_filesizeはini_setでは設定できません(PHPのini_setのマニュアル参照の事)。
なので、正確にはpost_max_sizeの方が正しく動作しています。
upload_max_filesizeが、なぜこういう動作をしているのかは、わかりませんが...。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
こちらでも再度確認してみたのですが、
aaa=16M
bbb=2M
となっているにもかかわらず、実際には2M以上のファイルをアップロードしてもエラーになりませんでした。
おっしゃるようにini_setしても「upload_max_filesize」は変わらないようです・・・。

直接php.iniを変更することにしようと思います。
ありがとうございました!

お礼日時:2004/08/13 10:18

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