ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 11 years ago

Last modified 11 years ago

#3025 new defect

iPhoneから日記を投稿しようとするとファイルサイズが大きすぎるエラーが表示されて投稿できない

Reported by: imamura623 Owned by: nobody
Priority: minor Milestone:
Component: 指定しない Version: 2.12.x & 2.14.x
Keywords: 再現せず Cc:

Description

http://sns.openpne.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=4037より転記

Phoneはinput type="file"をサポートしていないので、POSTの際にupfile_1,2,3が含まれていないものを上げてきます。単にファイルを全く添付してないように取り扱ってくれれば良いのですが、なぜかファイルサイズが大き過ぎるというエラーチェックに引っかかってしまいます。(モードはSafariなので、pc扱いになります。User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F136 Safari/525.20)

とりあえず問題になっているのはfh_diary_comment_confirm.phpの以下の部分のようなんですが、

 $upfiles = array(
   1 => $_FILES['upfile_1'],
   $_FILES['upfile_2'],
   $_FILES['upfile_3'],
 );
 $tmpfiles = array(
   1 => '',
   '',
   '',
 );

 foreach ($upfiles as $key => $upfile) {
   if (!empty($upfile) && $upfile['error'] !== UPLOAD_ERR_NO_FILE) {
     if (!($image = t_check_image($upfile))) {
       $_REQUEST['msg'] = '画像は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
       openpne_forward('pc', 'page', 'fh_diary');
       exit;
     } else {
       $tmpfiles[$key] = t_image_save2tmp($upfile, $sessid, "dc_{$key}", $image['format']);
     }
   }
 }

なぜか !empty($upfile)がtrueになっているっていうことですよね。で、このif文を以下のようにすると無事iPhoneからコメントの投稿ができるようになりました。

if (!empty($upfile) && $upfile['size'] > 0 && $upfile['error'] !== UPLOAD_ERR_NO_FILE) {

他のファイルでも似たようなことがあるはずですし、正式に導入するべきパッチなのかどうか解りませんが、いちおうご報告まで。これってPHPのバグなんですかねぇ??

Change History (3)

comment:1 Changed 11 years ago by imamura623

Version: 2.13.x2.10.x & 2.12.x & 2.13.x

comment:2 Changed 11 years ago by kiwa

Keywords: 再現せず added; 再現待ち removed

開発チームにiPhoneユーザがいないので確認することができません。

iPhoneをお持ちの方に検証をお願いしたいです。

comment:3 Changed 11 years ago by ebihara

Version: 2.10.x & 2.12.x & 2.13.x2.12.x & 2.13.x
Note: See TracTickets for help on using tickets.